xanmanning.terraform_project

Rola Ansible: Projekt Terraform

Rola Ansible, która otacza i buduje workflow dla projektów Hashicorp Terraform.

CI

Wymagania

Ta rola została przetestowana na Ansible 2.7.0+ na następujących dystrybucjach Linuksa:

  • Amazon Linux 2
  • CentOS 8
  • CentOS 7
  • Debian 10
  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

Zastrzeżenie

Jeśli masz jakiekolwiek problemy, proszę zgłoś je jako problem na GitHubie. Utrzymuję tę rolę w wolnym czasie, więc nie mogę obiecać szybkiej naprawy.

Zmienne Roli

Zmienna Opis Wartość Domyślna
terraform_min_version Określa minimalną wersję Terraform, np. 0.11.0. Wskaź false, aby pominąć. false
terraform_max_version Określa maksymalną wersję Terraform, np. 0.12.0. Wskaź false, aby pominąć. false
terraform_binary_path Ścieżka do pliku binarnego Terraform. Wskaź false, aby użyć Terraform w ${PATH}. false
terraform_exec_projects Lista projektów Terraform do planowania/zastosowania. Zobacz przykład poniżej. []
terraform_destroy_all Zniszczy wszystkie projekty wymienione w terraform_exec_projects - używaj ostrożnie! false

Zależności

Brak zależności od innych ról.

Przykładowy Playbook

Celem tej roli jest stworzenie workflow w Ansible, który wspiera workflow Terraform “najpierw zaplanuj, potem zastosuj”. Umożliwia również zapewnienie, że minimalne i maksymalne wersje Terraform są spełnione (np. jeśli masz projekt przed wersją 0.12, który nie może być zaktualizowany).

---

- hosts: control_hosts
  become: true
  vars:
    terraform_min_version: 0.11.0
    terraform_max_version: 0.12.0
    terraform_exec_projects:
      - project_path: project/       # Wymagane
        state: present               # Opcjonalne, domyślnie: present
        plan_file: project.tfplan    # Opcjonalne, domyślnie: project.tfplan
        state_file: project.tfstate  # Opcjonalne, domyślnie: project.tfstate
        workspace: default           # Opcjonalne, workspace do użycia.
        purge_workspace: false       # Opcjonalne, czy usunąć workspace przy zniszczeniu?
        lock: true                   # Opcjonalne, blokowanie pliku stanu, jeśli jest obsługiwane.
        lock_timeout: 300            # Opcjonalne, jak długo blokować, jeśli jest obsługiwane.
        force_init: true             # Opcjonalne
        backend_config_files:        # Opcjonalne, lista plików zawierających konfigurację backendu.
          - config.hcl
        backend_config:              # Opcjonalne, pary klucz-wartość do podania na etapie inicjalizacji.
          region: "eu-west-1"
          bucket: "some-bucket"
          key: "random.tfstate"
        targets:                     # Opcjonalne, lista specyficznych zasobów do planowania/zastosowania.
          some_target
        variables_file: dev.tfvars   # Opcjonalne, ścieżka do pliku z wartościami zmiennych.
        variables:                   # Opcjonalne, pary klucz-wartość dla zmiennych.
          vm_size: t3.large
  roles:
    - role: xanmanning.terraform_project

Licencja

BSD 3-klauzula

Informacje o autorze

Xan Manning

O projekcie

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

Zainstaluj
ansible-galaxy install xanmanning.terraform_project
Licencja
bsd-3-clause
Pobrania
207
Właściciel
Deep in the lab...