前提・実現したいこと
Ansibleのtemplates機能で複数の変数リストを1つのループだけで解決できる様にしたい
本来やりたいと思っている事は、何台登録されるか分からないホストとIPの情報をループして
configファイルに追記して、configを完成させたいが、想定の登録だけになってくれない。
変数側の作りを変えることは厳しいのでansible側で解決をしたいと考えています。
作りたいconfig想定は local-data: "host_b. IN A 100.100.100.100" local-data: "host_b.test.local. IN A 100.100.100.100" local-data-ptr: "100.100.100.100 host_b.test.local." local-data: "host_c. IN A 200.200.200.200" local-data: "host_c.test.local. IN A 200.200.200.200" local-data-ptr: "200.200.200.200 host_c.test.local."
発生している問題・エラーメッセージ
しかし、多次元配列となって重複したconfigが出来てしまう
local-data: "host_b. IN A 100.100.100.100" local-data: "host_b.test.local. IN A 100.100.100.100" local-data-ptr: "100.100.100.100 host_b.test.local." local-data: "host_b. IN A 200.200.200.200" local-data: "host_b.test.local. IN A 200.200.200.200" local-data-ptr: "200.200.200.200 host_b.test.local." local-data: "host_c. IN A 100.100.100.100" local-data: "host_c.test.local. IN A 100.100.100.100" local-data-ptr: "100.100.100.100 host_c.test.local." local-data: "host_c. IN A 200.200.200.200" local-data: "host_c.test.local. IN A 200.200.200.200" local-data-ptr: "200.200.200.200 host_c.test.local."
該当のソースコード
変数の作り dns_server: test.local hoge: - server_host: host_a - server_host: host_b - server_host: host_c ip: - server_ip: 10.10.10.10 - server_ip: 100.100.100.100 - server_ip: 200.200.200.200 test.conf.j2 {% for h in hoge %} {% for i in ip %} local-data: "{{ h.server_host }}. IN A {{ i.server_ip }}" local-data: "{{ h.server_host }}.{{ dns_server }}. IN A {{ i.server_ip }}" local-data-ptr: "{{ i.server_ip }} {{ h.server_host }}.{{ dns_server }}." {% endfor %} {% endfor %}
ここにより詳細な情報を記載してください。
ubuntu20.04 ansible2.9.6 を利用しています。 宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/27 02:31