我正在尝试从我在 Ansible 中的清单中遍历我的主机,并在命令中使用该迭代的主机名称。特别是,我试图将每个主机的主机名设置为我在主机文件中调用它们的任何名称。所以,我的网络服务器有 web01、web02、web03 等——我想在每个问题中将它们设置为服务器上的主机名,即我想遍历“所有”主机以及当我在 web01 上时(第一次迭代) ,我想将我所在主机的名称传递给主机名模块。这是我尝试过的:
- hosts: all
become: true
tasks:
- hostname:
name: "{{ item }}"
with_items: "{{ play_hosts }}"
但是,不是将我所在主机的名称设置为主机名,而是尝试将我的 ansible 配置中的每个主机设置为每个服务器上的主机名。所以它试图做:
connect to web01; hostname -> web01; hostname -> web02; hostname -> web03
connect to web02; hostname -> web01; hostname -> web02; hostname -> web03
connect to web03; hostname -> web01; hostname -> web02; hostname -> web03
相反,我想要:
connect to web01; hostname -> web01
connect to web02; hostname -> web02
connect to web03; hostname -> web03
我怎样才能做到这一点?
我在这里发现了一个类似的问题:Ansible: setting hostname over inventory
但这得到了一个比我希望的更复杂的解决方案。那里的建议是添加后缀,但肯定像我想要的简单循环原则上不应该要求这样做。