Hello,
I’m trying to use the setup module with delegation, but I don’t understand one thing. Here is my test playbook :
`
-
hosts: webservers
tasks: -
debug: var=ansible_hostname
-
name: Get sql master facts
setup:
delegate_to: “mrk-test-sql1”
register: sql_master_facts -
debug: var=sql_master_facts.ansible_facts.ansible_default_ipv4.address
-
debug: var=ansible_hostname
`
I just want to retrieve the private ip of my master db with Ansible facts and add it in the /etc/hosts file of my web servers. Here is the output :
`
PLAY [webservers] *************************************************************
GATHERING FACTS ***************************************************************
ok: [mrk-test-web1]
ok: [mrk-test-web2]
TASK: [debug var=ansible_hostname] ********************************************
ok: [mrk-test-web1] => {
“ansible_hostname”: “mrk-test-web1”
}
ok: [mrk-test-web2] => {
“ansible_hostname”: “mrk-test-web2”
}
TASK: [Get sql master facts] **************************************************
ok: [mrk-test-web2 → mrk-test-sql1]
ok: [mrk-test-web1 → mrk-test-sql1]
TASK: [debug var=sql_master_facts.ansible_facts.ansible_default_ipv4.address] ***
ok: [mrk-test-web1] => {
“sql_master_facts.ansible_facts.ansible_default_ipv4.address”: “10.240.16.26”
}
ok: [mrk-test-web2] => {
“sql_master_facts.ansible_facts.ansible_default_ipv4.address”: “10.240.16.26”
}
TASK: [debug var=ansible_hostname] ********************************************
ok: [mrk-test-web1] => {
“ansible_hostname”: “mrk-test-sql1”
}
ok: [mrk-test-web2] => {
“ansible_hostname”: “mrk-test-sql1”
}
PLAY RECAP ********************************************************************
mrk-test-web1 : ok=5 changed=0 unreachable=0 failed=0
mrk-test-web2 : ok=5 changed=0 unreachable=0 failed=0
`
All work, but I don’t understand the result of the latest task. Why is it not like this (like the result of the first task) :
TASK: [debug var=ansible_hostname] ******************************************** ok: [mrk-test-web1] => { "ansible_hostname": "mrk-test-web1" } ok: [mrk-test-web2] => { "ansible_hostname": "mrk-test-web2" }
Normally, gathering facts with delegate should not overwrite the current facts of my web servers ?
My workaround to fix the problem is to recall “setup” for my web server.
Thanks.
Regards,
Antoine Rouaze