Spec-Zone.ru › OpenTofu 1.11

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

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/

Spec-Zone.ru

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