我有一个动态清单脚本,可以输出以下内容。
"NODE_A": {
"inventory_hostname": "10.0.2.6",
"inventory_lparname": "NODE_A"
}
无法通过DNS或其他方式解析节点,因为此网络是某种隔离的“管理” LAN。 到目前为止,我一直在运行Play,该Play修改了本地/ etc / hosts文件以启用名称解析。 由于Ansible控制器将要移至外部计算机,因此这不再可行。 因此,最大的问题是如何进行。我如何指示Ansible连接到IP地址而不是主机名,我可以分别使用“ inventory_hostname”代替“ ansible_hostname”作为连接字符串,但在播放摘要中显示主机名吗?
答案 0 :(得分:0)
我如何指示Ansible而不是主机名连接到IP地址,我可以分别使用“ inventory_hostname”代替“ ansible_hostname”作为连接字符串,但将主机名保留在播放摘要中吗?
处理此问题的通常方法是将清单主机名设置为“友好”名称,然后将ansible_hostname
设置为IP地址。也就是说,如果您的清单脚本报告了一个名为“ host0”的主机,则当使用--host host0
进行调用时,它将产生:
{
"inventory_hostname": "host0",
"ansible_host": "10.0.2.6",
}
您会在剧本输出中看到名称host0
,但ansible将使用IP地址进行连接。
答案 1 :(得分:-1)
一种选择是扩展动态清单凭证,以添加或替换inventory directory中的节点。例如INI格式
NODE_A ansible_host=10.0.2.6