xanmanning.terraform_project

Rol de Ansible: Proyecto Terraform

Rol de Ansible que envuelve y construye un flujo de trabajo para proyectos de Hashicorp Terraform.

CI

Requisitos

Este rol ha sido probado en Ansible 2.7.0+ contra las siguientes distribuciones de Linux:

  • Amazon Linux 2
  • CentOS 8
  • CentOS 7
  • Debian 10
  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

Aviso

Si tienes algún problema, por favor crea un problema en GitHub. Mantengo este rol en mi tiempo libre, así que no puedo prometer una solución rápida.

Variables del Rol

Variable Descripción Valor por Defecto
terraform_min_version Especifica una versión mínima de Terraform, ej. 0.11.0. Especifica false para omitir. false
terraform_max_version Especifica una versión máxima de Terraform, ej. 0.12.0. Especifica false para omitir. false
terraform_binary_path Ruta al binario de Terraform. Especifica false para usar Terraform en ${PATH}. false
terraform_exec_projects Lista de proyectos de Terraform para planificar/aplicar. Ver ejemplo abajo. []
terraform_destroy_all Destruir todos los proyectos listados en terraform_exec_projects - ¡Usar con precaución! false

Dependencias

No hay dependencias de otros roles.

Ejemplo de Playbook

El objetivo de este rol es crear un flujo de trabajo en Ansible que soporte el flujo de trabajo de Terraform de "planificar, luego aplicar". También asegura que se cumplan las versiones mínima y máxima de Terraform. (ej. Si tienes un proyecto pre Terraform 0.12 que no se puede actualizar).

---

- hosts: control_hosts
  become: true
  vars:
    terraform_min_version: 0.11.0
    terraform_max_version: 0.12.0
    terraform_exec_projects:
      - project_path: project/       # Requerido
        state: present               # Opcional, valor por defecto: present
        plan_file: project.tfplan    # Opcional, valor por defecto: project.tfplan
        state_file: project.tfstate   # Opcional, valor por defecto: project.tfstate
        workspace: default            # Opcional, espacio de trabajo a usar.
        purge_workspace: false        # Opcional, ¿eliminar el espacio de trabajo al destruir?
        lock: true                    # Opcional, bloqueo del archivo de estado si se soporta.
        lock_timeout: 300             # Opcional, cuánto tiempo bloquear si se soporta.
        force_init: true              # Opcional
        backend_config_files:         # Opcional, lista de archivos con configuración de backend
          - config.hcl
        backend_config:               # Opcional, clave-valores a proporcionar en la etapa de inicialización.
          region: "eu-west-1"
          bucket: "some-bucket"
          key: "random.tfstate"
        targets:                      # Opcional, lista de recursos específicos a planificar/aplicar.
          some_target
        variables_file: dev.tfvars    # Opcional, ruta al archivo de variables.
        variables:                    # Opcional, clave-valores para variables.
          vm_size: t3.large
  roles:
    - role: xanmanning.terraform_project

Licencia

BSD 3-cláusulas

Información del Autor

Xan Manning

Acerca del proyecto

Ansible Role that wraps around and builds a workflow around Terraform projects.

Instalar
ansible-galaxy install xanmanning.terraform_project
Licencia
bsd-3-clause
Descargas
207
Propietario
Deep in the lab...