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