andrelohmann.terrahelper
terrahelper
terrahelperは小規模チーム向けの、以下のTerraformとTerrahelpのベストプラクティスをまとめたものです。
ベストプラクティス:
- Terraformテンプレートファイルのためのリポジトリを作成する
- Terraform状態のためのリポジトリを作成する
- 状態をTerraformテンプレートのフォルダから分けて管理する(そのために2つ目のリポジトリが必要です)
ワークフロー:
- テンプレートを作成/編集する
- 状態リポジトリから最新の状態を取得する
- Terrahelpと状態の秘密を使用して状態を復号化する
- Terraform plan/applyを実行する
- Terrahelpを使用して新しい状態を暗号化する
- 新しい状態を状態リポジトリにコミットする
要件
このロールはUbuntuを必要とします。
例のプレイブック
- hosts: terrahelper
roles:
- { role: andrelohmann.terraform }
- { role: andrelohmann.terrahelpe }
- { role: andrelohmann.terrahelper }
使用法
terrahelperは、TerraformテンプレートのTerraform状態を復号化および暗号化する手順と、スタックを初期化、計画、適用、および削除するためのTerraformコマンドをまとめたものです。
そのため、Terraform状態の暗号化/復号化のために状態秘密が必要で、2つの別々のリポジトリが必要です(1つはテンプレート用、もう1つは状態用)。
terrahelperは、通常Terraformテンプレートディレクトリ内からTerraformコマンドを実行するのと同じ方法で実行します。
使い方: terrahelper init | plan | apply | destroy | output [-s | --statesecret SECRET] [-d | --statedirectory STATEDIRECTORY] [-f | --statefile terraform.tfstate] [-b | --statefilebackup terraform.tfstate.backup] [-e | --echo] [-h | --help] [任意のTerraformパラメータ]
以下の環境変数が設定されている場合、該当のパラメータは不要です:
TH_SECRET - 状態の暗号化/復号化に使用するTerrahelpの秘密
TH_STATE_DIRECTORY - Terraformテンプレートディレクトリからの絶対パスまたは相対パスのTerraform状態ディレクトリ
TH_STATE_FILE - Terraform状態ファイル(デフォルトはterraform.tfstate)
TH_STATE_FILE_BACKUP - Terraform状態ファイルのバックアップ(デフォルトはterraform.tfstate.backup)
任意のTerraformコマンドの特定のパラメータを末尾に追加することもできます。それらはTerraformコマンドに付加されます。
ライセンス
MIT
著者情報
ansible galaxy role to wrap a terraform best practice, that uses a separate state repository, that is encrypted by terrahelp.
ansible-galaxy install andrelohmann.terrahelper