gpt4 book ai didi

ansible - 在 Ansible 中搜索字典值

转载 作者:行者123 更新时间:2023-12-02 16:14:55 24 4
gpt4 key购买 nike

有一个这样的字典:

ossec_datacenter:
atlanta:
hostname: 'server1.fakedomain.net'
ip: '192.168.12.170'
port: '1515'
miami:
hostname: 'server2.fakedomain.net'
ip: '192.168.20.31'
port: '1514'
dallas:
hostname: 'server2.fakedomain.net'
ip: '192.168.20.20'
port: '1515'

如何在 when 子句中搜索此字典中的所有值?

我可以使用ossec_datacenter[ossec_dc]['hostname']访问变量

但我想搜索所有值以确保不存在匹配项。

换句话说,我不希望在该数据结构中的任何位置找到 inventory_hostname 和 IP。

最佳答案

如果你想使用 json_query (需要 ansible 2.2),你可以这样做来搜索 ip 和主机名:

    - name: find inventory_hostname
set_fact:
found: True
with_items:
- "{{ ossec_datacenter | json_query('*.ip') }}"
- "{{ ossec_datacenter | json_query('*.hostname') }}"
when: "inventory_hostname == item"

或者如果您想搜索数据中心中的任何键(IP、主机名或端口):

- name: find inventory_hostname
set_fact:
found: True
with_items: "{{ ossec_datacenter | json_query('*.*') }}"
when: "inventory_hostname == item"

然后测试找到变量。

关于ansible - 在 Ansible 中搜索字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41581273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com