monolithprojects.tfvars2facts
Tfvars2facts (Ansibleロール)
このAnsibleロールは、TerraformのtfvarsファイルをAnsibleのローカルファクトに変換します。 結果は、リモートホストの/etc/ansible/facts.d/ディレクトリにJSONファイルとして保存されます。
Ansibleでは、次の構文を使ってtfvars変数をクエリできます {{ ansible_local['tfvars']['my_variable'] }}
。
注意:
Ansibleの変数名にはダッシュ記号を含めることができないため、ダッシュ記号はアンダースコアに置き換えられます。
例えば、my-var-1
はmy_var_1
になります。
要件
Ansible 2.8以上
ロールは特権モードで実行する必要があります(
become: yes
)
ロール変数
これはdefaults/main.yml
からのコピーです。
# Ansibleローカルファクトのパス
local_facts_path: /etc/ansible/facts.d
# ローカルファクトファイル名。例えば "different_file.facts" に変更した場合、
# キーも {{ ansible_local['different_file']['some_variable'] }} になります。
local_facts_file: tfvars.fact
# DT Pan-Net ALiEn(アプリケーションライフサイクルエンジン)と共に使用する場合は有効にします
ALiEn: false
# Terraform変数ファイルのパス
# (ALiEnがtrueの場合は省略されます)
tfvars_path: files
# Terraform変数ファイル名
tfvars_file: vars.tfvars
# ローカルファクトが作成された後にAnsibleファクトを再読み込みする
reload_facts: false
例プレイブック
この例では、ロールはfiles/vars.tfvars
内のTerraform変数を翻訳し、リモートホストにAnsibleファクトファイルとしてアップロードします。
ロールはAnsibleファクトも再読み込みするため、新しいファクトが次のロール/post_taskの準備が整います。
---
- name: シンプルな例
hosts: all
become: yes
vars:
reload_facts: yes
roles:
- role: ansible-tfvars2facts
ライセンス
MIT
著者情報
2020年にMichal Muransky/DT Pan-Netによって作成されました。