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

许可

BSD 3条款

作者信息

Xan Manning

关于项目

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...