In Ansibleでは、オブジェクトの属性に値が含まれているかどうかでオブジェクトをフィルタリングするにはどうすればよいですか?例:私は、属性名= "a2"を持つprivate_manオブジェクトを返します。private_manオブジェクトをフィルタリングし、addrには "1.2.3.4"が含まれています。属性によるフィルタには値が含まれています
ここAnsibleコードだ:
- hosts: localhost
connection: local
gather_facts: no
vars:
network:
addresses:
private_ext:
- name: a1
addr:
- 1.2.3.4
private_man:
- name: a2
addr:
- 10.10.20.30
- 1.2.3.4
- name: a3
addr:
- 10.90.80.10
私は次のことを試してみました:
- debug:
msg: "{{ item.name }}"
with_items: "{{ network.addresses.private_man | selectattr('addr', 'in', '1.2.3.4'}} | list"
A2オブジェクトのaddrの要素が1.2.3.4
が含まれているので、私は、これは "A2" を表示することが期待しかし、これを実行すると、selectaddr( 'addr'、 'in'、 '1.2.3.4')が無効なため、おそらく完全に失敗しました。