Как настроить зеркало реестров для OpenTofu и Terraform

В конце августа проект OpenTofu сначала заблокировал доступ к своему реестру https://registry.opentofu.org для пользователей из России, а затем без ясного объяснения причин удалил несколько российских провайдеров (PR#817, PR#839). Это привело к тому, ч…


This content originally appeared on DEV Community and was authored by kvendingoldo

В конце августа проект OpenTofu сначала заблокировал доступ к своему реестру https://registry.opentofu.org для пользователей из России, а затем без ясного объяснения причин удалил несколько российских провайдеров (PR#817, PR#839). Это привело к тому, что даже зеркалирование официального реестра стало бессмысленным и сломало выполнение команды tofu init для всех, кто только что смигрировал с Terraform на OpenTofu.

Примечательно, что HashiCorp, который заблокировал доступ к реестру Terraform для российских пользователей еще в 2022 году, не пошел на столь радикальные меры и не удалял российских провайдеров из самого реестра.

В статье мы рассмотрим варианты обхода блокировки реестра провайдеров как для пользователей Terraform, так и для OpenTofu.

Обход блокировки registry.terraform.io

В случае Terraform, обход блокировки осуществляется через конфигурацию стандартного зеркала для реестра провайдеров. Для этого нужно создать файл .terraformrc в домашнем каталоге вашей операционной системы.

В самом файле нужно сконфигурировать зеркало следующим образом:

provider_installation {
  network_mirror {
    url     = "https://terraform-mirror.yandexcloud.net/"
    include = ["registry.terraform.io/*/*"]
  }
  direct {
    exclude = ["registry.terraform.io/*/*"]
  }
}

После этого terraform init снова будет выполняться без проблем.

Обход блокировки registry.opentofu.org

Ситуация с OpenTofu является более сложным, чем с Terraform. Как уже упоминалось ранее, OpenTofu физически удалил метаинформацию о провайдерах из своего реестра. Это означает, что даже настроенное зеркало не сможет помочь при использовании свежих версий плагинов, которые не существовали на момент блокировки.

По умолчанию OpenTofu использует реестр registry.opentofu.org, если он не указан явно. К счастью, плагины для OpenTofu и Terraform в настоящее время взаимосовместимы, что дает возможность использовать реестр registry.terraform.io с заранее настроенным зеркалом. Для этого достаточно создать в домашнем каталоге вашей файловой системы файл .tofurc со следующим содержанием:

provider_installation {
  network_mirror {
    url     = "https://terraform-mirror.yandexcloud.net/"
    include = ["registry.terraform.io/*/*"]
  }
  direct {
    exclude = ["registry.terraform.io/*/*"]
  }
}

После, измените блок terraform внутри вашего HCL кода. Для каждого описанного провайдера в параметр source необходимо добавить префикс registry.terraform.io/ . Пример блока для конфигурации OpenTofu:

terraform {
  required_version = "1.8.0"
  required_providers {
    yandex = {
      source  = "registry.terraform.io/yandex-cloud/yandex"
      version = "0.129.0"
    }
    tls = {
      source  = "registry.terraform.io/hashicorp/tls"
      version = "4.0.4"
    }
    random = {
      source  = "registry.terraform.io/hashicorp/random"
      version = "3.4.3"
    }
    null = {
      source  = "registry.terraform.io/hashicorp/null"
      version = "3.2.2"
    }
    aws = {
      source  = "registry.terraform.io/hashicorp/aws"
      version = "5.45.0"
    }
  }
}

Это изменение принудительно заставит OpenTofu использовать реестр Terraform через заранее настроенное зеркало.

Список доступных зеркал

Как вы, возможно, заметили, в примерах я использовал зеркало terraform-mirror.yandexcloud.net от компании Яндекс. Это зеркало не отличается высокой стабильностью и частотой обновлений, поэтому, помимо него, можно воспользоваться следующими альтернативами:


This content originally appeared on DEV Community and was authored by kvendingoldo


Print Share Comment Cite Upload Translate Updates
APA MLA
" » Как настроить зеркало реестров для OpenTofu и Terraform." kvendingoldo | Sciencx - Thursday September 26, 2024, https://www.scien.cx/2024/09/26/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-%d0%b7%d0%b5%d1%80%d0%ba%d0%b0%d0%bb%d0%be-%d1%80%d0%b5%d0%b5%d1%81%d1%82%d1%80%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-opentofu-%d0%b8/
HARVARD
kvendingoldo | Sciencx Thursday September 26, 2024 » Как настроить зеркало реестров для OpenTofu и Terraform., viewed ,<https://www.scien.cx/2024/09/26/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-%d0%b7%d0%b5%d1%80%d0%ba%d0%b0%d0%bb%d0%be-%d1%80%d0%b5%d0%b5%d1%81%d1%82%d1%80%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-opentofu-%d0%b8/>
VANCOUVER
kvendingoldo | Sciencx - » Как настроить зеркало реестров для OpenTofu и Terraform. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/26/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-%d0%b7%d0%b5%d1%80%d0%ba%d0%b0%d0%bb%d0%be-%d1%80%d0%b5%d0%b5%d1%81%d1%82%d1%80%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-opentofu-%d0%b8/
CHICAGO
" » Как настроить зеркало реестров для OpenTofu и Terraform." kvendingoldo | Sciencx - Accessed . https://www.scien.cx/2024/09/26/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-%d0%b7%d0%b5%d1%80%d0%ba%d0%b0%d0%bb%d0%be-%d1%80%d0%b5%d0%b5%d1%81%d1%82%d1%80%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-opentofu-%d0%b8/
IEEE
" » Как настроить зеркало реестров для OpenTofu и Terraform." kvendingoldo | Sciencx [Online]. Available: https://www.scien.cx/2024/09/26/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-%d0%b7%d0%b5%d1%80%d0%ba%d0%b0%d0%bb%d0%be-%d1%80%d0%b5%d0%b5%d1%81%d1%82%d1%80%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-opentofu-%d0%b8/. [Accessed: ]
rf:citation
» Как настроить зеркало реестров для OpenTofu и Terraform | kvendingoldo | Sciencx | https://www.scien.cx/2024/09/26/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-%d0%b7%d0%b5%d1%80%d0%ba%d0%b0%d0%bb%d0%be-%d1%80%d0%b5%d0%b5%d1%81%d1%82%d1%80%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-opentofu-%d0%b8/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.