Spec-Zone.ru › Ansible

community.general.terraform модуль – Управляет развертыванием Terraform (и планами)

Примечание

Этот модуль является частью коллекции community.general (версия 9.5.0).

Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробностей.

Для использования в книге задач укажите: community.general.terraform.

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Обеспечивает поддержку развертывания ресурсов с помощью Terraform и извлечения информации о ресурсах обратно в Ansible.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • terraform
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

backend_config

dictionary

Группа пар «ключ-значение» для передачи на этапе инициализации параметру -backend-config.

backend_config_files

list / elements=path

added in community.general 0.2.0

Путь к конфигурационному файлу для передачи на этапе инициализации параметру -backend-config. Может принимать список путей к нескольким конфигурационным файлам.

binary_path

path

Путь к бинарному файлу Terraform, который будет использоваться, относительно ‘service_path’, если не указан абсолютный путь.

check_destroy

boolean

added in community.general 3.3.0

Применять только тогда, когда ресурсы не уничтожаются. Обратите внимание, что это предотвращает только действия «destroy», но не действия «destroy and re-create». Этот параметр игнорируется, когда state=absent.

Варианты:

  • false ← (default)
  • true

complex_vars

boolean

added in community.general 5.7.0

Включить/отключить возможность обработки сложных структур переменных для terraform.

Если true то variables также принимает словари, списки и булевы значения для передачи в terraform. Переданные строки корректно экранируются.

При отключении поддерживаются только простые переменные (строки, целые и вещественные числа), и передаются без экранирования.

Варианты:

  • false ← (default)
  • true

force_init

boolean

Чтобы избежать дублирования инфраструктуры, если файл состояния не может быть найден, это приведёт к принудительной terraform init. Как правило, это следует отключить, если вы не намерены создавать совершенно новое развертывание Terraform.

Варианты:

  • false ← (default)
  • true

init_reconfigure

boolean

added in community.general 1.3.0

Принудительно перенастраивает бэкэнд во время инициализации.

Варианты:

  • false ← (default)
  • true

lock

boolean

Включить блокировку файла состояния, если вы используете сервис, который принимает блокировки (например, S3+DynamoDB) для хранения вашего файла состояния.

Варианты:

  • false
  • true ← (default)

lock_timeout

integer

Как долго удерживать блокировку файла состояния, если вы используете сервис, который принимает блокировки (например, S3+DynamoDB).

overwrite_init

boolean

added in community.general 3.2.0

Запустить init даже если .terraform/terraform.tfstate уже существует в project_path.

Варианты:

  • false
  • true ← (default)

parallelism

integer

added in community.general 3.8.0

Ограничить параллельные операции при применении Terraform плана.

plan_file

path

Путь к существующему файлу плана Terraform для применения. Если он не указан, Ansible создаст новый план TF и выполнит его. Обратите внимание, что этот параметр обязателен, если ‘state’ имеет значение ‘planned’.

plugin_paths

list / elements=path

added in community.general 3.0.0

Список путей, содержащих исполняемые файлы плагинов Terraform.

Исполняемые файлы плагинов можно загрузить с https://releases.hashicorp.com/.

При установке, поиск и автоматическая загрузка плагинов Terraform отключаются.

Структура каталогов в пути к плагину может быть сложной. В документации Terraform https://learn.hashicorp.com/tutorials/terraform/automate-terraform#pre-installed-plugins показана простая структура каталогов с файлами, но на самом деле структура каталогов должна соответствовать той структуре, которую вы бы увидели, если бы Terraform автоматически загрузил плагины. См. примеры ниже для вывода дерева примера каталога плагинов.

project_path

path / required

Путь к корневому каталогу Terraform с vars.tf/main.tf/etc для использования.

provider_upgrade

boolean

added in community.general 4.8.0

Позволяет Terraform init обновлять провайдеры до версий, указанных в ограничениях версий проекта.

Варианты:

  • false ← (default)
  • true

purge_workspace

boolean

Работает только с state = absent

Если true, рабочее пространство будет удалено после действия «terraform destroy».

Рабочее пространство ‘default’ удаляться не будет.

Варианты:

  • false ← (default)
  • true

state

string

Целевое состояние заданного этапа/проекта

Варианты:

  • "planned"
  • "present" ← (по умолчанию)
  • "absent"

state_file

path

Путь к существующему файлу состояния Terraform, используемому при построении плана. Если это не указано, будет использоваться значение по умолчанию terraform.tfstate.

Этот параметр игнорируется, когда указан параметр plan.

targets

list / elements=string

Список конкретных ресурсов, которые нужно нацелить в этом плане/приложении. Выбранные здесь ресурсы также автоматически включат все зависимости.

По умолчанию: []

variables

dictionary

Группа пар ключ-значение для переопределения переменных шаблона или переменных в файлах переменных. По умолчанию разрешены только строковые и числовые значения, которые передаются без кавычек.

Поддерживаются сложные структуры переменных (списки, словари, числа и булевы значения) для отражения синтаксиса переменных terraform, когда complex_vars=true.

Целые числа или числа с плавающей точкой Ansible отображаются как числа Terraform.

Строки Ansible отображаются как строки Terraform.

Словари Ansible отображаются как объекты Terraform.

Списки Ansible отображаются как списки Terraform.

Булевы значения Ansible отображаются как булевы значения Terraform.

Примечание Пароли, переданные в качестве переменных, будут видны в выводе журнала. Убедитесь, что вы используете no_log=true в рабочей среде!

variables_files

aliases: variables_file

list / elements=path

Путь к файлу переменных для Terraform, чтобы заполнить конфигурации TF. Можно принять список путей к нескольким файлам переменных.

workspace

string

Рабочий стол terraform для работы. Это устанавливает переменную среды TF_WORKSPACE, которая используется для переопределения выбора рабочего стола. Для получения дополнительной информации о рабочих столах см. https://developer.hashicorp.com/terraform/language/state/workspaces.

По умолчанию: "default"

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз изменённого статуса без изменения целевого объекта.

diff_mode

Поддержка: полная

добавлен в community.general 8.3.0

Вернёт подробности о том, что изменилось (или, возможно, должно измениться в check_mode), когда используется режим сравнения.

Примечания

Примечание

  • Чтобы просто запустить terraform plan, используйте режим check.

Примеры

- name: Basic deploy of a service
  community.general.terraform:
    project_path: '{{ project_dir }}'
    state: present

- name: Define the backend configuration at init
  community.general.terraform:
    project_path: 'project/'
    state: "{{ state }}"
    force_init: true
    backend_config:
      region: "eu-west-1"
      bucket: "some-bucket"
      key: "random.tfstate"

- name: Define the backend configuration with one or more files at init
  community.general.terraform:
    project_path: 'project/'
    state: "{{ state }}"
    force_init: true
    backend_config_files:
      - /path/to/backend_config_file_1
      - /path/to/backend_config_file_2

- name: Disable plugin discovery and auto-download by setting plugin_paths
  community.general.terraform:
    project_path: 'project/'
    state: "{{ state }}"
    force_init: true
    plugin_paths:
      - /path/to/plugins_dir_1
      - /path/to/plugins_dir_2

- name: Complex variables example
  community.general.terraform:
    project_path: '{{ project_dir }}'
    state: present
    complex_vars: true
    variables:
      vm_name: "{{ inventory_hostname }}"
      vm_vcpus: 2
      vm_mem: 2048
      vm_additional_disks:
        - label: "Third Disk"
          size: 40
          thin_provisioned: true
          unit_number: 2
        - label: "Fourth Disk"
          size: 22
          thin_provisioned: true
          unit_number: 3
    force_init: true

### Example directory structure for plugin_paths example
# $ tree /path/to/plugins_dir_1
# /path/to/plugins_dir_1/
# └── registry.terraform.io
#     └── hashicorp
#         └── vsphere
#             ├── 1.24.0
#             │   └── linux_amd64
#             │       └── terraform-provider-vsphere_v1.24.0_x4
#             └── 1.26.0
#                 └── linux_amd64
#                     └── terraform-provider-vsphere_v1.26.0_x4

Значения возврата

Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:

Ключ

Описание

command

строка

Полная terraform команда, созданная этим модулем, в случае, если вам нужно повторно запустить команду вне модуля или отладить проблему.

Возвращаемое значение: всегда

Пример: "terraform apply ..."

outputs

сложный тип

Словарь всех выходных данных TF по их назначенным именам. Используйте outputs.MyOutputName.value для доступа к значению.

Возвращаемое значение: при успехе

Пример: "{\"bukkit_arn\": {\"sensitive\": false, \"type\": \"string\", \"value\": \"arn:aws:s3:::tf-test-bukkit\"}"

sensitive

логическое

Указано ли Terraform это значение как конфиденциальное

Возвращаемое значение: всегда

type

строка

Тип значения (строка, целое число и т. д.)

Возвращаемое значение: всегда

value

строка

Значение выходного параметра, интерполированное Terraform

Возвращаемое значение: всегда

stdout

строка

Полный terraform вывод stdout команды, в случае необходимости отображения или анализа журнала событий

Возвращаемое значение: всегда

Пример: ""

Авторы

  • Ryan Scott Brown (@ryansb)

Ссылки на коллекцию

  • Система отслеживания ошибок
  • Репозиторий (источники)
  • Задайте вопрос о помощи
  • Отправить отчет об ошибке
  • Запросить новую функцию
  • Общение

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/terraform_module.html

Spec-Zone.ru

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