xanmanning.terraform_project

Ansibleロール: Terraformプロジェクト

このAnsibleロールは、Hashicorp Terraformプロジェクトのためのワークフローを構築します。

CI

要件

このロールは、次のLinuxディストリビューションに対してAnsible 2.7.0以降でテストされています:

  • 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バイナリのパスを指定します。${PATH}内のTerraformを使用するにはfalseを指定します。 false
terraform_exec_projects プランまたはアプライするTerraformプロジェクトのリスト。以下に例を示します。 []
terraform_destroy_all terraform_exec_projectsにリストされたすべてのプロジェクトを破棄します - 注意して使用してください! false

依存関係

他のロールに依存していません。

例 Playbook

このロールの目的は、Terraformの "プラン後に適用" のワークフローをサポートする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       # 任意、削除する場合はtrueか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...