是否存储了可用主机主机名的特殊变量(而不是正在运行操作的主机:ansible_host
inventory_hostname
)?
我要在针对主机运行播放本时获取本地的主机名。
例如,我将ansible安装在machine1
上,并且正在针对machine_dev
运行它,如何在不使用localhost主机名shell命令的特殊变量中获取machine1
? / p>
答案 0 :(得分:2)
主机名存储在事实ansible_hostname
中。您需要为此收集事实。
通过hostvars
哈希图可以获取所有收集的主机事实
如果您在第一场比赛中就收集了本地主机的信息,则本地主机名将在hostvars.localhost.ansible_hostname
的其他任何地方可用
这里是如何使用它的快速演示。
---
- hosts: localhost
- hosts: all
tasks:
- name: show localhost hostname for each current host in the play loop
debug:
msg: "{{ hostvars.localhost.ansible_hostname }}"