Spec-Zone.ru › OpenTofu 1.9

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

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 считывает эту переменную, если в блоке cloud не указан атрибут organization. Если указаны оба значения, приоритет имеет конфигурация.

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

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

  • TF_WORKSPACE — Имя одного рабочего пространства облачного бэкенда. OpenTofu считывает эту переменную, если в блоке cloud не указан атрибут workspaces. Облачный бэкенд не будет создавать рабочее пространство на основе этой переменной; рабочее пространство должно существовать в указанной организации. Можно задать 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.9/cli/cloud/settings/

Spec-Zone.ru

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