Железо и софт • 06.06.2026
Terraform init выдает ошибку Failed to download provider в реестре как исправить
Пытаюсь развернуть облачную инфраструктуру по декларативным манифестам и запускаю команду terraform init в консоли на Windows 11. На этапе инициализации модулей процесс резко прерывается, а в терминале вылетает критический код сбоя сети: «Error: Failed to query available provider packages» или «failed to download provider from registry.terraform.io: connection reset by peer». При этом обычные сайты в браузере открываются быстро, но консольный скрипт утилиты не может пробить сетевой шлюз для скачивания нужного плагина (например, провайдера AWS или Yandex Cloud). Подскажите, из-за каких блокировок портов рушится зеркалирование реестра, где утилита хранит локальный кэш плагинов и как заставить конфигурацию инициализироваться без ошибок?
Ответы (5)
Артем Инфра
Здорово! Ошибка "connection reset by peer" или тайм-аут при скачивании плагина — это прямое следствие строгих геоблокировок со стороны официального реестра HashiCorp Registry. С недавнего времени сервера компании начали принудительно обрывать сетевые сессии и сбрасывать пакеты, идущие от пулов IP-адресов провайдеров СНГ. Твой браузер может обходить эти экраны за счет кэша или системных прокси, а вот консольный бинарник Терраформа стучится напрямую на заблокированные адреса хостинга Cloudflare и мгновенно получает глухой сетевой отказ. Для сборки манифестов приходится либо настраивать локальный кэш, либо перенаправлять утилиту на рабочие зеркала.
Марина Девопс
Чтобы принудительно заставить Терраформ скачивать бинарные пакеты провайдеров в обход заблокированного центрального реестра, настройте локальное зеркало строго по шагам:
1. Зажмите на клавиатуре комбинацию клавиш Win + R, введите системную строку `%userprofile%` и нажмите Enter.
2. В корне открывшейся папки вашего профиля создайте обычный файл с названием `.terraformrc` (внимательно следите, чтобы у файла не было расширения .txt).
3. Откройте его через Блокнот и пропишите конфигурацию перенаправления трафика:
`provider_installation {`
` network_mirror {`
` url = "https://yandexcloud.net"`
` include = ["registry.terraform.io/*/*"]`
` }`
` direct {`
` exclude = ["registry.terraform.io/*/*"]`
` }`
`}`
4. Сохраните изменения в Блокноте и закройте текстовый редактор.
5. Вернитесь в консоль вашего проекта и заново запустите команду `terraform init` — утилита мгновенно скачает все зависимости из чистого зеркала.
Дмитрий Стек
Ребята, если ошибка звучит как "certificate signed by unknown authority", то корень проблемы кроется в сетевой инспекции пакетов вашим корпоративным фаерволом или антивирусом. Защитный софт перехватывает шифрованный HTTPS-трафик консоли и подменяет оригинальный SSL-сертификат HashiCorp на локальный самоподписанный. Браузер этому сертификату доверяет, а изолированный движок Терраформа падает в ступор, считая подмену атакой перехвата. Попробуйте временно прописать в консоли переменную среды `TF_CLI_ARGS="-insecure"` для проверки, либо добавьте корневой сертификат компании в доверенное хранилище.
Никита Облако
Чтобы утилита при создании каждого нового манифеста не качала тяжелые плагины провайдеров заново, тратя трафик, настройте единую папку кэша по инструкции:
1. Создайте на вашем быстром диске надежную постоянную папку, например: `C:Terraform_Cache`.
2. Откройте ранее созданный конфигурационный файл настроек клиета `.terraformrc` в Блокноте.
3. В самую первую строчку документа (вне блоков дескрипторов) добавьте параметр: `plugin_cache_dir = "C:/Terraform_Cache"`.
4. Сохраните изменения. Теперь при успешной первой инициализации бинарники провайдеров осядут в этой папке.
5. При сборке других проектов утилита будет брать файлы из этого локального сектора, полностью игнорируя проблемы с интернетом и блокировки портов реестра.
Роман Скрипт
Если провайдер специфический и его нет на зеркалах, вы можете скачать скомпилированный zip-архив плагина вручную с GitHub-репозитория разработчиков. Распакуйте бинарный файл и закиньте его в скрытую локальную папку вашего текущего проекта по строгому пути: `.terraform/providers/registry.terraform.io/издатель/имя/версия/windows_amd64/`. После ручной раскладки файлов запустите команду инициализации с флагом автономного режима: `terraform init -plugin-dir=.terraform/providers`. Сборщик мигом подхватит структуру без вылетов сокетов сети.