xanmanning.terraform_project

Rôle Ansible : Projet Terraform

Rôle Ansible qui encapsule et construit un flux de travail pour les projets Hashicorp Terraform.

CI

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

BSD 3-clause

Informations sur l'auteur

Xan Manning

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