terraform – Управляет развертыванием Terraform (и планами)
Новое в версии 2.5.
Описание
- Обеспечивает поддержку развертывания ресурсов с помощью Terraform и извлечения информации о ресурсах обратно в Ansible.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- terraform
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| backend_config - добавлено в 2.7 | Группа пар ключ-значение для передачи на этапе инициализации параметру -backend-config. | |
| binary_path - | Путь к двоичному файлу terraform, относительный к 'service_path', если не указан абсолютный путь. | |
| force_init boolean |
| Для избежания дублирования инфраструктуры, если файл состояния не найден, это заставит выполнить `terraform init`. Как правило, это следует отключать, если вы не планируете развертывать полностью новую инфраструктуру Terraform. |
| lock - | Включить блокировку файла состояния, если используется служба, которая поддерживает блокировки (например, S3+DynamoDB) для хранения файла состояния. | |
| lock_timeout - | Время удержания блокировки файла состояния, если используется служба, которая поддерживает блокировки (например, S3+DynamoDB). | |
| plan_file - | Путь к существующему файлу плана Terraform для применения. Если этот параметр не указан, Ansible создаст новый план TF и выполнит его. Обратите внимание, что этот параметр обязателен, если у 'state' есть значение 'planned'. | |
| project_path - / обязательно | Путь к корневой директории Terraform с файлами vars.tf/main.tf и т.д., которые нужно использовать. | |
| purge_workspace boolean добавлено в 2.7 |
| Работает только со state = absent Если true, рабочее пространство будет удалено после действия "terraform destroy". Рабочее пространство 'default' не будет удалено. |
| state - |
| Цель состояния заданного этапа/проекта |
| state_file - | Путь к существующему файлу состояния Terraform для использования при построении плана. Если этот параметр не указан, будет использован стандартный `terraform.tfstate`. Этот параметр игнорируется, если задан параметр `plan`. | |
| targets - | Список конкретных ресурсов, которые необходимо нацелить в этом плане/приложении. Выбранные здесь ресурсы также автоматически включат все зависимости. | |
| variables - | Группа пар ключ-значение для переопределения переменных шаблона или тех, которые указаны в файлах переменных. | |
| variables_file - | Путь к файлу переменных для Terraform, чтобы заполнить конфигурации TF. | |
| workspace - добавлено в 2.7 | Значение по умолчанию: "default" | Рабочее пространство terraform для работы. |
Примечания
Примечание
- Для простого выполнения
terraform plan, используйте режим проверки.
Примеры
# Basic deploy of a service
- terraform:
project_path: '{{ project_dir }}'
state: present
# Define the backend configuration at init
- terraform:
project_path: 'project/'
state: "{{ state }}"
force_init: true
backend_config:
region: "eu-west-1"
bucket: "some-bucket"
key: "random.tfstate"
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| command строка | всегда | Полная команда `terraform`, созданная этим модулем, в случае необходимости повторного выполнения команды вне модуля или отладки проблемы. Пример: terraform apply ... | |
| outputs сложное | при успехе | Словарь всех выходных данных TF по их назначенному имени. Используйте `.outputs.MyOutputName.value` для доступа к значению. Пример: {"bukkit_arn": {"sensitive": false, "type": "string", "value": "arn:aws:s3:::tf-test-bukkit"} | |
| sensitive boolean | всегда | Указано ли Terraform, что это значение является конфиденциальным | |
| type строка | всегда | Тип значения (строка, целое число и т.д.) | |
| value - | всегда | Значение выходных данных, интерполированное Terraform | |
| stdout строка | всегда | Полный вывод команды `terraform`, в случае необходимости отображения или проверки журнала событий. | |
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Ryan Scott Brown @ryansb
Подсказка
Если вы обнаружите какие-либо проблемы в данной документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/terraform_module.html