私はホスト名に基づいて値を入力するために、不可能なテンプレートでif/elseステートメントを使用しようとしています。私は、ホスト名を解析し、値をファクトとして追加するモジュールを作成しました。私はこれらの事実を私のプレーブックで使用することができますが、正しく使用するにはif/elseステートメントを取得するのに問題があります。両方の値が一致するように、ifとelseの両方が一致するようになります。Jinja2 if/else bothと一致する
Jinja2のテンプレート
{% for host in groups['tag_Function_logfe'] %}
{% if hostvars[host]['tt_number'] == "01" %}
is_master = true
{% else %}
is_master = false
{% endif %}
{% endfor %}
Ansible事実:
ok: [node1] => {"ansible_facts": {"tt_number": "01"}, "changed": false, "msg": "Additional facts added successfully"}
ok: [node2] => {"ansible_facts": {"tt_number": "02"}, "changed": false, "msg": "Additional facts added successfully"}
結果:
is_master = true
is_master = false
これは完璧に機能します。私はグループメンバーシップテストを削除することができました。私はhostvarsをチェックするためにホストを引き込むためにそれを使用していましたが、私はこのような事実に直接アクセスすることはできませんでした。 – tweeks200
うれしかった! – Tony