terraform_project
Ansible роль: Terraform проект
Ansible роль, которая оборачивает и создает рабочий процесс для проектов Hashicorp Terraform.
Требования
Эта роль была протестирована на Ansible 2.7.0+ на следующих дистрибутивах Linux:
- Amazon Linux 2
- CentOS 8
- CentOS 7
- Debian 10
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
Отказ от ответственности
Если у вас возникли проблемы, пожалуйста, создайте проблему на GitHub. Я поддерживаю эту роль в свободное время, поэтому не могу гарантировать быструю исправление.
Переменные роли
Переменная | Описание | Значение по умолчанию |
---|---|---|
terraform_min_version |
Укажите минимальную версию Terraform, например, 0.11.0 . Укажите false , чтобы пропустить. |
false |
terraform_max_version |
Укажите максимальную версию Terraform, например, 0.12.0 . Укажите false , чтобы пропустить. |
false |
terraform_binary_path |
Путь к бинарному файлу Terraform. Укажите false , чтобы использовать Terraform в ${PATH} . |
false |
terraform_exec_projects |
Список проектов Terraform для планирования/применения. См. пример ниже. | [] |
terraform_destroy_all |
Уничтожить все проекты, указанные в terraform_exec_projects - используйте с осторожностью! |
false |
Зависимости
Нет зависимостей от других ролей.
Пример плейбука
Цель этой роли - создать рабочий процесс в Ansible, который поддерживает рабочий процесс Terraform "план, затем применить". Она также обеспечивает соблюдение минимальных и максимальных версий Terraform. (например, если у вас есть проект до Terraform 0.12, который нельзя обновить).
---
- hosts: control_hosts
become: true
vars:
terraform_min_version: 0.11.0
terraform_max_version: 0.12.0
terraform_exec_projects:
- project_path: project/ # Обязательно
state: present # Опционально, по умолчанию: present
plan_file: project.tfplan # Опционально, по умолчанию: project.tfplan
state_file: project.tfstate # Опционально, по умолчанию: project.tfstate
workspace: default # Опционально, используемое рабочее пространство.
purge_workspace: false # Опционально, удалить рабочее пространство при уничтожении?
lock: true # Опционально, блокировка файла состояния, если поддерживается.
lock_timeout: 300 # Опционально, как долго блокировать, если поддерживается.
force_init: true # Опционально
backend_config_files: # Опционально, список файлов, содержащих конфигурацию бэкенда.
- config.hcl
backend_config: # Опционально, ключи-значения для предоставления на этапе инициализации.
region: "eu-west-1"
bucket: "some-bucket"
key: "random.tfstate"
targets: # Опционально, список конкретных ресурсов для планирования/применения.
some_target
variables_file: dev.tfvars # Опционально, путь к файлу переменных.
variables: # Опционально, ключи-значения для переменных.
vm_size: t3.large
roles:
- role: xanmanning.terraform_project
Лицензия
Информация об авторе
О проекте
Ansible Role that wraps around and builds a workflow around Terraform projects.
Установить
ansible-galaxy install PyratLabs/ansible-role-terraform-project
Лицензия
bsd-3-clause
Загрузки
194
Владелец
Deep in the lab...