私は次のコードを持っています
- set_fact:
MY_HOSTNAME: "SOME VALUE"
MY_SERVER: "00.00.00.00"
- name: Get MY server
set_fact:
MY_SERVER: "{{ groups[MY_HOSTNAME][0] }}"
when: groups[MY_HOSTNAME] is defined
上記のコードでは、groups[MY_HOSTNAME]
は配列です。それを確認する最良の方法は何ですかgroups[MY_HOSTNAME]
が定義されており、not empty
どちらかである場合、値が必要です00.00.00.00
に割り当てられるMY_SERVER
バージョン固有かどうかはわかりませんが、現在RHEL6でansible-2.3.2を実行しているため、グループ名を引用符で囲む必要があります。
when: groups["GROUP_NAME"] is defined and (groups["GROUP_NAME"]|length>0)
編集:十分な評判がないため、これをテクラフの回答へのコメントとして追加できませんでした。
list | length
フィルタは、要素の数を返します。ゼロの場合、リストは空です。
条件値には、if
またはternary
フィルターを使用します( この回答の例 )。
複合条件付き(groups[MY_HOSTNAME]| default([])) | length
。