Hello guys,
I have the following problem:
I'm reading a simple json file which contains some names of my hosts.
The file looks like this:
{ "redundancynode": "node4", "service": "dhcp", "servicenode" "node1" }
Now i have a task to read the contents of that file:
vars:
file_content: "{{ lookup('file', '/tmp/info') }}
tasks:
- name: Read from local file /tmp/info
debug:
msg: "{{ file_content }}"
The Output of Ansible for that file looks like this:
ok: [127.0.0.1] => {
"msg": {
"redundancynode": "node4",
"service": "dhcp",
"servicenode": "node1"
}
}
I used set_fact to get the actual nodes for servicenode and redundancynode:
- set_fact: redundancynode="{{output.msg.redundancynode}}"
- set_fact: servicenode="{{ output.msg.servicenode }}"
debggung for example redundancynode gives me as expected the following output:
ok: [127.0.0.1] => {
"msg": "node4"
}
Now, I want to use the content of "redundancy node", which is "node4" in another task as condition:
when: inventory_hostname == "redundanynode"
But this does not work. It just skips the task for all nodes.
(BTW: node4 does exist in my inventory file of course)
What am I missing? Im searching for a solution since hours.
Thank you advance!