私は長い間立ち往生しているダミーの疑いを持っています。ホストと変数を含む非常に平凡なインベントリ ファイルがあります。
[lb]
10.112.84.122
[tomcat]
10.112.84.124
[jboss5]
10.112.84.122
...
[tests:children]
lb
tomcat
jboss5
[default:children]
tests
[tests:vars]
data_base_user=NETWIN-4.3
data_base_password=NETWIN
data_base_encrypted_password=
data_base_host=10.112.69.48
data_base_port=1521
data_base_service=ssdenwdb
data_base_url=jdbc:oracle:thin:@10.112.69.48:1521/ssdenwdb
問題は、group_vars/all ファイルからインベントリ ファイル内のこれらすべてのホストと変数にアクセスする必要があることです。
ホストIPにアクセスするために次の方法を試しました:
{{ lb }}
"{{ hostvars[lb] }}"
"{{ hostvars['lb'] }}"
{{ hostvars[lb] }}
私が試したホスト変数にアクセスするには:
"{{ hostvars[tests].['data_base_host'] }}"
全部間違ってる!!!プレイブックではなく変数ファイルから、ホストと変数にアクセスするためのベストプラクティスを見つけるのを手伝ってくれる人はいますか?
編集:
Ok。明確にしましょう。
問題:変数ファイルのインベントリ ファイルで宣言されたホストを使用します。たとえば、group_vars/all です。
例:の DB ホストがありIP:10.112.83.37
ます。
在庫ファイル:
[db]
10.112.83.37
group:vars/all ファイルで、その IP を使用して変数を作成します。
group_vars/all ファイル:
data_base_url=jdbc:oracle:thin:@{{ db }}:1521/ssdenwdb
テンプレートでは、group_vars/all ファイルに組み込まれた変数を使用します。
テンプレート ファイル:
oracle_url = {{ data_base_url }}
問題は{{ db }}
、group_vars/all ファイル内の変数が DB ホスト IP に置き換えられていないことです。ユーザーは、インベントリ ファイルのみを編集できます。