community.general.terraform – Управляет развертыванием Terraform (и планами)
Примечание
Этот плагин входит в состав коллекции community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.terraform.
Обзор
- Обеспечивает поддержку развертывания ресурсов с помощью Terraform и извлечения информации о ресурсах обратно в Ansible.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- terraform
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| backend_config словарь | Группа пар «ключ-значение» для предоставления на этапе инициализации параметру -backend-config. | |
| backend_config_files список / элементы=путь добавлен в 0.2.0 версии community.general | Путь к файлу конфигурации для предоставления на начальном этапе параметру -backend-config. Может принимать список путей к нескольким файлам конфигурации. | |
| binary_path путь | Путь к исполняемому файлу terraform. Относительный к 'service_path', если не указан абсолютный путь. | |
| force_init логическое значение |
| Для избежания дублирования инфраструктуры, если файл состояния не найден, это заставит выполнить `terraform init`. Обычно это следует отключать, если вы не планируете развертывание совершенно новой системы Terraform. |
| init_reconfigure логическое значение добавлен в 1.3.0 версии community.general |
| Вынуждает переконфигурацию бэкенда во время инициализации. |
| lock логическое значение |
| Включить блокировку файла состояния, если вы используете сервис, который поддерживает блокировки (например, S3+DynamoDB) для хранения файла состояния. |
| lock_timeout целое число | Сколько времени удерживать блокировку файла состояния, если вы используете сервис, который поддерживает блокировки (например, S3+DynamoDB). | |
| plan_file путь | Путь к существующему файлу плана Terraform для применения. Если не указан, Ansible создаст новый план TF и выполнит его. Обратите внимание, что этот параметр необходим, если у 'state' значение 'planned'. | |
| project_path путь / обязательно | Путь к корню директории Terraform с файлами vars.tf/main.tf и т.д., которые нужно использовать. | |
| purge_workspace логическое значение |
| Работает только со state = absent Если true, рабочая область будет удалена после действия "terraform destroy". Рабочая область 'default' не будет удалена. |
| state строка |
| Целевое состояние заданного этапа/проекта |
| state_file путь | Путь к существующему файлу состояния Terraform для использования при построении плана. Если не указан, будет использован файл по умолчанию `terraform.tfstate`. Этот параметр игнорируется, когда указан plan. | |
| targets список / элементы=строка | Список конкретных ресурсов для целевого выбора в этом плане/применении. Выбранные здесь ресурсы также автоматически включат все зависимости. | |
| variables словарь | Группа пар «ключ-значение» для переопределения переменных шаблонов или тех, что находятся в файлах переменных. | |
| variables_files список / элементы=путь | Путь к файлу переменных для Terraform, чтобы заполнить TF-конфигурации. Может принимать список путей к нескольким файлам переменных. До Ansible 2.9 этот параметр был доступен как variables_file. псевдонимы: variables_file | |
| workspace строка | По умолчанию: "default" | Рабочая область terraform для работы. |
Примечания
Примечание
- Чтобы просто выполнить
terraform plan, используйте режим проверки.
Примеры
- 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
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| 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` на стандартный вывод, в случае, если вы хотите его отобразить или просмотреть журнал событий. | |
Авторы
- Ryan Scott Brown (@ryansb)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/terraform_module.html