我的库存看起来像这样
host:
vars:
fruit:
- {type: melon, id: 1}
- {type: apple, id: 2}
目前,我曾经像下面那样获得ID
list: >-
{{groups['host']|map('extract',hostvars,'fruits')|first}}
- set_fact:
fruit_id: "{{list[2].id}}"
如何通过使用等于apple的类型获取id值?
答案 0 :(得分:2)
任务
- debug:
msg: "{{ list|
selectattr('type', '==', 'apple')|
map(attribute='id')|
list|first }}"
给予
"msg": "2"
循环中的同一任务
- debug:
msg: "{{ list|
selectattr('type', '==', item)|
map(attribute='id')|
list|first }}"
loop:
- melon
- apple
给予
"msg": "1"
"msg": "2"