看来推荐的方法对我来说效果不好:
- name: Set hostname
hostname: name=mx.mydomain.net
Run Code Online (Sandbox Code Playgroud)
重新启动后,你可以看到我有fqdn的问题,没有任何内容/etc/hosts.
root@mx:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 mail mail
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@mx:~# cat /etc/hostname
mx.mydomain.net
root@mx:~# hostname
mx.mydomain.net
root@mx:~# hostname -f
hostname: Name or service not known
Run Code Online (Sandbox Code Playgroud)
看来这个Ansible模块的文档并不是很清楚它究竟是做什么的.我只是快速浏览一下github上hostname模块的源代码,看来根据linux发行版只调用/ bin/hostname和/或修改/ etc/hostname,/ etc/sysconfig/network,或者/等/ conf.d /主机名.该模块本身并不以任何方式实际修改/ etc/hosts.
如果您认为这是该模块工作方式的错误,那么我强烈建议您向Ansible开发人员提交错误报告,您可以在此处执行此操作.即使您认为文档应该进行改进,提交错误报告以请求修复文档也会很有帮助.