Spec-Zone.ru › OpenTofu 1.10

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

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.10/cli/cloud/settings/

Spec-Zone.ru

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