local hosts entry override ansible_domain and ansible_fqdn

Hi all,

Is it the expected behavior that the value of ansible_domain and ansible_fqdn changes if an entry in /etc/hosts match the server ip ?

With no entry in /etc/hosts

$ ansible -i test localhost -m setup | grep “domain|fqdn”

“ansible_domain”: “mydomain.ch”,
“ansible_fqdn”: “myserver.mydomain.ch”,
“facter_domain”: “mydomain.ch”,
“facter_fqdn”: “myserver.mydomain.ch”,

Then if I add the following entry in /etc/hosts corresponding with the IP of the server,
1.2.3.4 otherserver.otherdomain.ch

$ ansible -i test localhost -m setup | grep “domain|fqdn”
“ansible_domain”: “otherdomain.ch”,
“ansible_fqdn”: “otherserver.otherdomain.ch”,

“facter_domain”: “mydomain.ch”,
“facter_fqdn”: “myserver.mydomain.ch”,

$ ansible --version

ansible 1.9.2

Regards,

Julien.

I justed tested with ansible 2 RC2 and I have the same behavior.

Maybe I should add that the server is a CentOS 6 box.

this is how the underlying python functions and system calls work.

Are you sure you have fqdn set up properly? It’s not just /etc/hosts that needs to be setup for properly configued fqdn. It is a bit different between different Linux flavors and even version of flavors as well. For example, Ubuntu/Debian and CentOS 7 also make use of /etc/ hostname whereas I believe CentOS 6 uses /etc/sysconfig/network. Sometimes you can get away with just /etc/hosts but there are times where that is not good enough.