Spec-Zone.ru › OpenTofu 1.12

Настройки облачного бэкенда

OpenTofu CLI может интегрироваться с облачным бэкендом, выступая в качестве клиента для него.

Чтобы использовать облачный бэкенд для определённого рабочего каталога, необходимо настроить следующее:

  • Предоставьте учётные данные для доступа к облачному бэкенду, предпочтительно с помощью команды tofu login.
  • Добавьте блок cloud в конфигурацию OpenTofu каталога, чтобы указать, какую организацию и какие рабочие области использовать.
  • При необходимости используйте файл .terraformignore, чтобы указать файлы, которые не следует загружать вместе с конфигурацией OpenTofu при выполнении планов и применении изменений.

После добавления или изменения блока cloud необходимо выполнить команду tofu init.

Блок cloud​

Блок cloud — это вложенный блок в блоке настроек верхнего уровня terraform. Он указывает, какие рабочие области облачного бэкенда использовать для текущего рабочего каталога.

Блок кода
terraform {
  cloud {
    organization = "my-org"
    hostname = "app.example.org"

    workspaces {
      project = "networking-development"
      tags = ["networking", "source:cli"]
    }
  }
}

Блок cloud также имеет некоторые особые ограничения:

  • Конфигурация может содержать только один блок cloud.
  • Блок cloud нельзя использовать вместе с бэкендами состояния. Конфигурация может использовать либо один, либо другой, но не оба одновременно.
  • Блок cloud не может ссылаться на именованные значения (например, входные переменные, локальные значения или атрибуты источников данных).

Блок cloud влияет только на поведение OpenTofu CLI. Когда облачный бэкенд использует конфигурацию, содержащую блок cloud, например, если рабочая область настроена на прямое использование поставщика VCS, он игнорирует этот блок и действует в соответствии с собственными настройками рабочей области.

Аргументы​

Блок cloud поддерживает следующие аргументы конфигурации:

  • hostname — (Обязательный) Имя хоста облачного бэкенда.

  • organization — (Обязательный) Имя организации, содержащей рабочие области, которые должна использовать текущая конфигурация.

  • workspaces — (Обязательный) Вложенный блок, указывающий, какие удалённые рабочие области облачного бэкенда использовать для текущей конфигурации. Блок workspaces должен содержать ровно один из следующих аргументов; каждый из них задаёт стратегию сопоставления рабочих областей:

    • tags — (Необязательный) Набор тегов рабочих областей облачного бэкенда. Вы сможете использовать этот рабочий каталог с любыми рабочими областями, у которых есть все указанные теги, а также переключаться между ними или создавать новые с помощью команд tofu workspace. Новые рабочие области будут автоматически получать указанные теги. Этот параметр несовместим с name.

    • name — (Необязательный) Имя одной рабочей области облачного бэкенда. В этом рабочем каталоге можно будет использовать только указанную в конфигурации рабочую область, а управлять рабочими областями из CLI (например, с помощью команд tofu workspace select или tofu workspace new) будет нельзя. Этот параметр несовместим с tags.

    • project — (Необязательный) Имя проекта облачного бэкенда. Рабочие области, которые потребуется создать, будут созданы в этом проекте. tofu workspace list будет отфильтрован по рабочим областям в указанном проекте.

  • token — (Необязательный) Токен для аутентификации в облачном бэкенде. Рекомендуем не указывать токен в конфигурации, а вместо этого использовать команду tofu login или вручную настроить credentials в файле конфигурации CLI.

Переменные среды​

Для настройки одного или нескольких атрибутов блока cloud можно использовать переменные среды. Это полезно, если вы хотите настроить OpenTofu как часть конвейера непрерывной интеграции (CI). OpenTofu считывает эти переменные, только если соответствующий атрибут не указан в файле конфигурации. Если вы решите полностью настроить блок cloud с помощью переменных среды, в файле конфигурации всё равно необходимо добавить пустой блок cloud.

Предупреждение

Для удалённого выполнения в неинтерактивных сценариях требуется автоматическое подтверждение развёртываний. Сведите к минимуму риск непредсказуемых изменений инфраструктуры и расхождения конфигурации, убедившись, что никто не может менять инфраструктуру вне автоматизированного конвейера сборки.

Для настройки блока cloud используйте следующие переменные среды:

  • TF_CLOUD_ORGANIZATION — имя организации. OpenTofu считывает эту переменную, если organization не указан в блоке cloud. Если указаны оба значения, приоритет имеет конфигурация.

  • TF_CLOUD_HOSTNAME — имя хоста облачного бэкенда. OpenTofu считывает эту переменную, если hostname не указан в блоке cloud. Если указаны оба значения, приоритет имеет конфигурация.

  • TF_CLOUD_PROJECT — имя проекта облачного бэкенда. OpenTofu считывает эту переменную, если workspaces.project не указан в блоке cloud. Если указаны оба значения, приоритет имеет конфигурация блока cloud.

  • TF_WORKSPACE — имя одной рабочей области облачного бэкенда. OpenTofu считывает эту переменную, если workspaces не указан в блоке cloud. Облачный бэкенд не создаёт рабочую область на основе этой переменной: рабочая область должна существовать в указанной организации. Можно задать TF_WORKSPACE, если в блоке cloud используются теги. Однако выбранная TF_WORKSPACE должна иметь набор тегов, соответствующий тегам в блоке cloud. Эта переменная также выбирает рабочую область в локальной среде. Подробности см. в разделе TF_WORKSPACE.

Исключение файлов из загрузки с помощью .terraformignore​

При удалённом выполнении plan или apply в запуске под управлением CLI копия каталога конфигурации загружается в облачный бэкенд. Чтобы исключить пути из загрузки, добавьте файл .terraformignore в корневой каталог конфигурации. Если этого файла нет, по умолчанию из загрузки исключаются:

  • каталоги .git/
  • каталоги .terraform/ (за исключением .terraform/modules)

Правила в файле .terraformignore похожи на правила, допустимые в файле .gitignore:

  • Комментарии (начинающиеся с #) и пустые строки игнорируются.
  • Чтобы указать каталог, завершите шаблон косой чертой /.
  • Чтобы отменить шаблон, начните его с восклицательного знака !.
Примечание

В отличие от .gitignore, учитывается только .terraformignore в корневом каталоге конфигурации.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.12/cli/cloud/settings/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API