terraform_project

Ansible роль: Terraform проект

Ansible роль, которая оборачивает и создает рабочий процесс для проектов Hashicorp Terraform.

CI

Требования

Эта роль была протестирована на 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

Лицензия

BSD 3-clause

Информация об авторе

Xan Manning

О проекте

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...