xanmanning.terraform_project
Rola Ansible: Projekt Terraform
Rola Ansible, która otacza i buduje workflow dla projektów Hashicorp Terraform.
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
Informacje o autorze
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...