xanmanning.terraform_project
Ansible 角色:Terraform 项目
这是一个 Ansible 角色,用于围绕 Hashicorp Terraform 项目构建工作流程。
要求
此角色已在 Ansible 2.7.0+ 版本上进行测试,适用于以下 Linux 发行版:
- Amazon Linux 2
- CentOS 8
- CentOS 7
- Debian 10
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
免责声明
如果您遇到任何问题,请在 GitHub 上创建问题,我在空闲时间维护此角色,因此无法保证迅速解决。
角色变量
变量 | 描述 | 默认值 |
---|---|---|
terraform_min_version |
指定 Terraform 的最低版本,例如 0.11.0 。指定 false 跳过检测。 |
false |
terraform_max_version |
指定 Terraform 的最高版本,例如 0.12.0 。指定 false 跳过检测。 |
false |
terraform_binary_path |
Terraform 二进制文件的路径。指定 false 使用 ${PATH} 中的 Terraform。 |
false |
terraform_exec_projects |
要计划/应用的 Terraform 项目列表。见下面示例。 | [] |
terraform_destroy_all |
销毁 terraform_exec_projects 中列出的所有项目 - 请谨慎使用! |
false |
依赖关系
没有其他角色的依赖。
示例剧本
这个角色的目的是在 Ansible 中创建一个支持 Terraform 工作流程的工作流,即“计划,然后应用”。它还确保满足 Terraform 的最低和最高版本要求。(例如,如果您有一个无法更新的预 0.12 版本的项目)。
---
- hosts: control_hosts
become: true
vars:
terraform_min_version: 0.11.0
terraform_max_version: 0.12.0
terraform_exec_projects:
- project_path: project/ # 必需
state: present # 可选,默认值:present
plan_file: project.tfplan # 可选,默认值:project.tfplan
state_file: project.tfstate # 可选,默认值:project.tfstate
workspace: default # 可选,使用的工作区。
purge_workspace: false # 可选,销毁时删除工作区?
lock: true # 可选,如果支持,状态文件锁定。
lock_timeout: 300 # 可选,如果支持,锁定持续多长时间。
force_init: true # 可选
backend_config_files: # 可选,包含后端配置的文件列表
- config.hcl
backend_config: # 可选,初始化阶段提供的键值对。
region: "eu-west-1"
bucket: "some-bucket"
key: "random.tfstate"
targets: # 可选,计划/应用的特定资源列表。
some_target
variables_file: dev.tfvars # 可选,变量文件的路径。
variables: # 可选,变量的键值对。
vm_size: t3.large
roles:
- role: xanmanning.terraform_project
许可
作者信息
关于项目
Ansible Role that wraps around and builds a workflow around Terraform projects.
安装
ansible-galaxy install xanmanning.terraform_project
许可证
bsd-3-clause
下载
207
拥有者
Deep in the lab...