我想更改远程服务器的主机名,因此我使用了主机名模块:
- hostname: name="{{my_hostname}}"
但这也改变了ansible_host
该值,因此搞乱了剩下的任务。
当我手动执行此操作时:
- shell: hostnamectl set-hostname {{my_hostname}}
然后远程服务器的主机名被更改,并且ansible_host
全局变量没有更改,并且所有剩余的播放都成功完成。
我是否hostname
正确使用了模块?我感觉它并没有按照我的想法运行。
(我还注意到 repo 中有很多错误报告,但我不确定它们是否与我正在做的事情有关,因为我没有使用 cloud-init)。
答案1
inventory_hostname
您应该知道(如何调用它)和(如何访问它)之间的区别。您可以在库存条目中ansible_host
使用 ip 地址:ansible_host
my_hostname ansible_host=192.168.12.34
然后使用hostname模块将机器的主机名更改为“{{inventory_hostname}}”。