Настройки облачного бэкенда
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/