Ansible-从dict on value中提取记录
在ansible中,我有一个目录,如:Ansible-从dict on value中提取记录,ansible,Ansible,在ansible中,我有一个目录,如: - { name: "a" } - { name: "b", cond: true } 我想在cond未定义或为false时提取姓名列表(1),在cond为true或未定义时提取姓名列表(2): 怎么做?我没有找到 谢谢您可以使用json\u查询过滤器: --- - hosts: localhost gather_facts: false vars: mylist: - name: a - name: b
- { name: "a" }
- { name: "b", cond: true }
我想在cond未定义或为false时提取姓名列表(1),在cond为true或未定义时提取姓名列表(2):
怎么做?我没有找到
谢谢您可以使用
json\u查询
过滤器:
---
- hosts: localhost
gather_facts: false
vars:
mylist:
- name: a
- name: b
cond: true
tasks:
- set_fact:
true_or_unset: "{{ mylist|json_query('[?cond == null || cond].[name]') }}"
false_or_unset: "{{ mylist|json_query('[?cond == null || !cond].[name]') }}"
- debug:
msg:
true_or_unset: "{{ true_or_unset }}"
false_or_unset: "{{ false_or_unset }}"
产生:
PLAY [localhost] ******************************************************************************
TASK [set_fact] *******************************************************************************
ok: [localhost]
TASK [debug] **********************************************************************************
ok: [localhost] => {
"msg": {
"false_or_unset": [
[
"a"
]
],
"true_or_unset": [
[
"a"
],
[
"b"
]
]
}
}
PLAY RECAP ************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0
谢谢,这正是我想要的!
PLAY [localhost] ******************************************************************************
TASK [set_fact] *******************************************************************************
ok: [localhost]
TASK [debug] **********************************************************************************
ok: [localhost] => {
"msg": {
"false_or_unset": [
[
"a"
]
],
"true_or_unset": [
[
"a"
],
[
"b"
]
]
}
}
PLAY RECAP ************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0