xanmanning.terraform_project

Ansible Rolle: Terraform Projekt

Ansible Rolle, die eine Arbeitsablauf für Hashicorp Terraform Projekte bietet.

CI

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

BSD 3-Klausel

Autor Informationen

Xan Manning

Über das Projekt

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

Installieren
ansible-galaxy install xanmanning.terraform_project
GitHub Repository
Lizenz
bsd-3-clause
Downloads
207
Besitzer
Deep in the lab...