xanmanning.terraform_project
Rol de Ansible: Proyecto Terraform
Rol de Ansible que envuelve y construye un flujo de trabajo para proyectos de Hashicorp Terraform.
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
Información del Autor
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...