Having a dictionary like this:
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'
How would I search for all values in this dictionary in my when
clause?
I can access variables using ossec_datacenter[ossec_dc]['hostname']
But I want so search all values to make sure no matches are present.
In other words I don't want the inventory_hostname
nor the IP to be found anywhere in that data structure.
Here's a condition for hostname:
Use
ansible_default_ipv4.address
or some other fact about IP address and reduce your dict withmap(attribute='ip')
to search for IP addresses.If you want to use json_query (requires ansible 2.2) you can do this to search ip and hostname:
or if you want to search any of the keys in the datacenters (ip, hostname, or port):
and then test the
found
var.