xanmanning.terraform_project
Rôle Ansible : Projet Terraform
Rôle Ansible qui encapsule et construit un flux de travail pour les projets Hashicorp Terraform.
Exigences
Ce rôle a été testé sur Ansible 2.7.0+ avec les distributions Linux suivantes :
- Amazon Linux 2
- CentOS 8
- CentOS 7
- Debian 10
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
Avertissement
Si vous avez des problèmes, veuillez créer un problème sur GitHub. Je maintiens ce rôle pendant mon temps libre, donc je ne peux pas promettre une réparation rapide.
Variables du rôle
Variable | Description | Valeur par défaut |
---|---|---|
terraform_min_version |
Spécifiez une version minimale de Terraform, par exemple 0.11.0 . Spécifiez false pour ignorer. |
false |
terraform_max_version |
Spécifiez une version maximale de Terraform, par exemple 0.12.0 . Spécifiez false pour ignorer. |
false |
terraform_binary_path |
Chemin vers le binaire Terraform. Spécifiez false pour utiliser Terraform dans ${PATH} . |
false |
terraform_exec_projects |
Liste des projets Terraform à planifier/appliquer. Voir l'exemple ci-dessous. | [] |
terraform_destroy_all |
Détruire tous les projets listés dans terraform_exec_projects - À utiliser avec précaution ! |
false |
Dépendances
Aucune dépendance sur d'autres rôles.
Exemple de Playbook
L'objectif de ce rôle est de créer un flux de travail dans Ansible qui prend en charge le flux de travail Terraform de "planification, puis application". Il permet également de s'assurer que les versions minimales et maximales de Terraform sont respectées. (par exemple, si vous avez un projet avant Terraform 0.12 qui ne peut pas être mis à jour).
---
- hosts: control_hosts
become: true
vars:
terraform_min_version: 0.11.0
terraform_max_version: 0.12.0
terraform_exec_projects:
- project_path: project/ # Requis
state: present # Optionnel, par défaut : présent
plan_file: project.tfplan # Optionnel, par défaut : project.tfplan
state_file: project.tfstate # Optionnel, par défaut : project.tfstate
workspace: default # Optionnel, espace de travail à utiliser.
purge_workspace: false # Optionnel, supprimer l'espace de travail lors de la destruction ?
lock: true # Optionnel, verrouillage du fichier d'état si supporté.
lock_timeout: 300 # Optionnel, durée du verrou si supportée.
force_init: true # Optionnel
backend_config_files: # Optionnel, liste des fichiers contenant la configuration du backend
- config.hcl
backend_config: # Optionnel, clés-valeurs à fournir lors de l'étape d'initialisation.
region: "eu-west-1"
bucket: "some-bucket"
key: "random.tfstate"
targets: # Optionnel, liste des ressources spécifiques à planifier/appliquer.
some_target
variables_file: dev.tfvars # Optionnel, chemin vers le fichier de variables.
variables: # Optionnel, clés-valeurs pour les variables.
vm_size: t3.large
roles:
- role: xanmanning.terraform_project
Licence
Informations sur l'auteur
À propos du projet
Ansible Role that wraps around and builds a workflow around Terraform projects.
Installer
ansible-galaxy install xanmanning.terraform_project
Licence
bsd-3-clause
Téléchargements
207
Propriétaire
Deep in the lab...