连接到没有DNS或/ etc / hosts“分辨率的节点

时间:2019-05-07 09:49:54

标签: ansible

我有一个动态清单脚本,可以输出以下内容。

"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”作为连接字符串,但在播放摘要中显示主机名吗?

2 个答案:

答案 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