【问题标题】:Ansible: Connect to Nodes without DNS or /etc/hosts" resolutionAnsible:连接到没有 DNS 或 /etc/hosts 解析的节点
【发布时间】:2019-09-24 22:57:17
【问题描述】:

我有一个动态库存脚本,它输出以下内容。

"NODE_A": {
        "inventory_hostname": "10.0.2.6",
        "inventory_lparname": "NODE_A"
}

节点无法通过 DNS 或其他方式解析,因为该网络是某种隔离的“管理”局域网。 到目前为止,我运行了一个 Play,它修改了本地 /etc/hosts 文件以启用名称解析。 由于 Ansible 控制器将移至外国机器上,因此这不再可能。 所以最大的问题是如何进行。我如何指示 Ansible 连接到 IP 地址而不是主机名,我可以分别使用“inventory_hostname”而不是“ansible_hostname”作为连接字符串,但保持主机名显示在 Play Recap 中?

【问题讨论】:

    标签: ansible


    【解决方案1】:

    一个选项是扩展动态库存脚本以添加或替换inventory directory 中的节点。例如INI格式

    NODE_A ansible_host=10.0.2.6
    

    【讨论】:

      【解决方案2】:

      我如何指示 Ansible 连接到 IP 地址而不是主机名,我可以分别使用“inventory_hostname”而不是“ansible_hostname”作为连接字符串,但保持主机名显示在 Play Recap 中?

      您处理此问题的正常方法是将库存主机名设置为“友好”名称,然后将ansible_hostname 设置为 IP 地址。也就是说,如果您的清单脚本报告了一个名为“host0”的主机,那么当使用--host host0 调用它时,它应该会生成:

      {
        "inventory_hostname": "host0",
        "ansible_host": "10.0.2.6",
      }
      

      您将在 playbook 输出中看到名称 host0,但 ansible 将使用该 IP 地址进行连接。

      【讨论】:

      • 我相应地更改了库存脚本,它运行良好!
      猜你喜欢
      • 2017-03-14
      • 2015-07-10
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多