вторник, 7 июня 2022 г.

Terraform: could not connect to registry.terraform.io

С некоторых пор из-за санкций в Беларуси есть проблемы с доступом к зарубежным ресурсам и в частности с выкачиванием провайдеров Terraform:

$ terraform init

Initializing the backend...

Initializing provider plugins...
- Reusing previous version of hashicorp/google from the dependency lock file
╷
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider hashicorp/google: could not connect to registry.terraform.io: Failed to request discovery
│ document: 403 Forbidden
╵

Заход в документацию из браузера также блокируется

Самым простым решением будет использование VPN из другого региона, но если такой вариант по каким-либо причинам не подходит, но есть SSH доступ к внешнему хосту в "правильном" регионе, то выкрутиться можно так:

Запускаем socks прокси через SSH

$ ssh -D 127.0.0.1:9080 -N username@example.com

Это соединение должно висеть в фоне, пока есть необходимость в proxy (чтобы отключить просто жмем Ctrl+C).

Далее ставим tinyproxy и добавляем "upstream socks5 127.0.0.1:9080 в конфигурацию

$ sudo apt install tinyproxy
$ echo 'Upstream socks5 127.0.0.1:9080' | sudo tee -a /etc/tinyproxy/tinyproxy.conf
$ sudo systemctl restart tinyproxy.service

Для Debian Buster получился такой конфиг

$ grep -Ev '^(\s+?#|$)' /etc/tinyproxy/tinyproxy.conf
User tinyproxy
Group tinyproxy
Port 8888
Timeout 600
DefaultErrorFile "/usr/share/tinyproxy/default.html"
StatFile "/usr/share/tinyproxy/stats.html"
LogFile "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info
PidFile "/run/tinyproxy/tinyproxy.pid"
MaxClients 100
Allow 127.0.0.1
Allow ::1
ViaProxyName "tinyproxy"
Upstream socks5 127.0.0.1:9080

По-умолчанию адрес tinyproxy - http://127.0.0.1:8888 и сейчас нужно настроить прокси для Terraform

$ export HTTPS_PROXY=http://127.0.0.1:8888
$ terraform init

Initializing the backend...

Initializing provider plugins...
- Reusing previous version of hashicorp/google from the dependency lock file
- Using previously-installed hashicorp/google v4.24.0

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Terraform снова в строю! Для чтения документации в браузере нужно прописать аналогичный socks5 прокси - 127.0.0.1:9080

Комментариев нет:

Отправить комментарий