xanmanning.terraform_project
Ansible Rolle: Terraform Projekt
Ansible Rolle, die eine Arbeitsablauf für Hashicorp Terraform Projekte bietet.
Anforderungen
Diese Rolle wurde unter Ansible 2.7.0+ auf den folgenden Linux-Distributionen getestet:
- Amazon Linux 2
- CentOS 8
- CentOS 7
- Debian 10
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
Haftungsausschluss
Wenn du Probleme hast, erstelle bitte ein GitHub-Problem. Ich pflege diese Rolle in meiner Freizeit, daher kann ich keine schnelle Lösung versprechen.
Rollvariablen
Variable | Beschreibung | Standardwert |
---|---|---|
terraform_min_version |
Gebe eine Mindestversion von Terraform an, z.B. 0.11.0 . Gebe false an, um zu überspringen. |
false |
terraform_max_version |
Gebe eine Höchstversion von Terraform an, z.B. 0.12.0 . Gebe false an, um zu überspringen. |
false |
terraform_binary_path |
Pfad zur Terraform-Binärdatei. Gebe false an, um Terraform in ${PATH} zu verwenden. |
false |
terraform_exec_projects |
Liste von Terraform-Projekten, die geplant/angewendet werden sollen. Siehe Beispiel unten. | [] |
terraform_destroy_all |
Zerstöre alle Projekte, die in terraform_exec_projects aufgelistet sind - Mit Vorsicht verwenden! |
false |
Abhängigkeiten
Keine Abhängigkeiten von anderen Rollen.
Beispiel Playbook
Ziel dieser Rolle ist es, einen Arbeitsablauf in Ansible zu schaffen, der den Terraform Arbeitsablauf von "planen, dann anwenden" unterstützt. Sie gewährleistet auch, dass die Mindest- und Höchstversionen von Terraform erfüllt sind (z.B. Wenn du ein Projekt vor Terraform 0.12 hast, das nicht aktualisiert werden kann).
---
- hosts: control_hosts
become: true
vars:
terraform_min_version: 0.11.0
terraform_max_version: 0.12.0
terraform_exec_projects:
- project_path: projekt/ # Erforderlich
state: present # Optional, Standard: present
plan_file: projekt.tfplan # Optional, Standard: projekt.tfplan
state_file: projekt.tfstate # Optional, Standard: projekt.tfstate
workspace: default # Optional, Arbeitsbereich, der verwendet werden soll.
purge_workspace: false # Optional, Arbeitsbereich bei Zerstörung löschen?
lock: true # Optional, Sperrung der Statusdatei, wenn unterstützt.
lock_timeout: 300 # Optional, wie lange gesperrt bleiben, wenn unterstützt.
force_init: true # Optional
backend_config_files: # Optional, Liste von Dateien mit Backend-Konfiguration
- config.hcl
backend_config: # Optional, Schlüssel-Werte zur Bereitstellung in der Init-Phase.
region: "eu-west-1"
bucket: "some-bucket"
key: "random.tfstate"
targets: # Optional, Liste von spezifischen Ressourcen zum Planen/Anwenden.
some_target
variables_file: dev.tfvars # Optional, Pfad zur Variablen-Datei.
variables: # Optional, Schlüssel-Werte für Variablen.
vm_size: t3.large
roles:
- role: xanmanning.terraform_project
Lizenz
Autor Informationen
Über das Projekt
Ansible Role that wraps around and builds a workflow around Terraform projects.
Installieren
ansible-galaxy install xanmanning.terraform_project
Lizenz
bsd-3-clause
Downloads
207
Besitzer
Deep in the lab...