Ansible-无法获取远程主机名
这是我的剧本。yml:Ansible-无法获取远程主机名,ansible,Ansible,这是我的剧本。yml: - hosts: oph-server roles: - role: 'myrole' server_hostname: "{{ansible_hostname}}" io_hostnames: "{{ groups['oph-io']|map('extract', hostvars, 'ansible_hostname')|list }}" io_ips: "{{ grou
- hosts: oph-server
roles:
- role: 'myrole'
server_hostname: "{{ansible_hostname}}"
io_hostnames: "{{ groups['oph-io']|map('extract', hostvars, 'ansible_hostname')|list }}"
io_ips: "{{ groups['oph-io']|map('extract', hostvars, 'ansible_default_ipv4')|list if 'oph-io' in groups else []}}"
- hosts: oph-io
roles:
- role: 'myrole'
server_hostname: "{{ hostvars['oph-server']['ansible_hostname'] }}"
io_hostnames: "{{ groups['oph-io']|map('extract', hostvars, 'ansible_hostname')|list if 'oph-io' in groups else []}}"
io_ips: "{{ groups['oph-io']|map('extract', hostvars, ['ansible_default_ipv4', 'address'])|list if 'oph-io' in groups else []}}"
这是库存
[oph-io]
oph-io1 ansible_default_ipv4=A.B.C.D
[oph-server]
oph-server ansible_default_ipv4=E.F.G:H
在oph io
节点上没有问题,而在oph服务器上
我能够正确获取io\u ip
,但是io\u主机名是未定义的
怎么了
谢谢
ansible\u主机名
和ansible\u默认值
是一个使用或播放关键字聚集\u事实的计算事实:是
一部剧只收集目标主机的事实,因此尚未收集来自oph io
的事实。
要收集其他主机的事实(或之前未被另一个重头戏收集),您可以使用带有委托和事实委托的设置
模块,如文档所示:
-主机:oph服务器
学前任务:
-姓名:从oph io收集事实
设置:
委托给:“{{item}}”
事实:正确
循环:“{groups['oph-io']}”
角色:
-角色:“我的角色”
[...]
要定义要连接到的计算机IP或主机,参数为
ansible\u host
,如中所述。ansible\u主机名
和ansible\u默认值\u ipv4
是一个带有或play关键字聚集\u事实:yes
的计算事实
一部剧只收集目标主机的事实,因此尚未收集来自oph io
的事实。
要收集其他主机的事实(或之前未被另一个重头戏收集),您可以使用带有委托和事实委托的设置
模块,如文档所示:
-主机:oph服务器
学前任务:
-姓名:从oph io收集事实
设置:
委托给:“{{item}}”
事实:正确
循环:“{groups['oph-io']}”
角色:
-角色:“我的角色”
[...]
要定义要连接的机器IP或主机,参数为
ansible\u host
,如中所述。收集事实:是应为默认值。我还试图显式地设置它,但它不起作用。无论如何,ansible\u主机名
似乎对oph io
正常工作。您正在尝试访问另一组(oph io
)而不是该剧组(oph server
)的收集事实。如果以前没有被某个剧收集,他们还没有事实!您可以在所有内容之前添加一个针对主机的空播放oph io:oph server
,以收集每个人的事实。或者明确调用setup
模块,并授权给oph io
的主机,以在访问它们之前检索它们的事实。collect\u facts:yes
应为默认值。我还试图显式地设置它,但它不起作用。无论如何,ansible\u主机名
似乎对oph io
正常工作。您正在尝试访问另一组(oph io
)而不是该剧组(oph server
)的收集事实。如果以前没有被某个剧收集,他们还没有事实!您可以在所有内容之前添加一个针对主机的空播放oph io:oph server
,以收集每个人的事实。或者明确调用setup
模块,并授权给oph io
的主机,以在访问它们之前检索它们的事实。