【问题标题】:Is this a Chef/ohai bug when dealing with FQDNs?这是处理 FQDN 时的 Chef/ohai 错误吗?
【发布时间】:2015-03-24 22:53:21
【问题描述】:

让我引导你完成我的步骤。

  • 我有一个带有基本 RHEL 5.10 操作系统的节点; /etc/hosts 文件为空
  • 运行 CLI “hostname -f” 得到 server1-nodex.domain.com,这是正确的
  • 我成功引导节点;当我做“刀节点秀”时 node_name" 我看到了正确的 FQDN,例如 server1-nodex.domain.com
  • 我运行一个配方并创建一个 /etc/hosts 文件,并将其放入 格式; 注意 IP 后的别名 (nodex)。我需要这种格式!

    10.22.10.10 nodex server1-nodex.domain.com

  • 现在,如果我执行刀节点显示 node_name Chef 会显示 FQDN 为“nodex”。啊???
  • 果然运行CLI "hostname -f" 也给出了"nodex" 嗯???
  • 只是为了测试,我统计了一遍,但是以这种格式创建 /etc/hosts 文件;注意别名现在出现在该行中的 FQDN 之后(我不需要这种方式)

    10.22.10.10 server1-nodex.domain.com nodex

  • 现在,如果我执行刀节点显示 node_name,Chef 会显示正确的 FQDN,“hostname -f”也是如此

为什么 Chef 会根据 /etc/hosts 文件中的内容对我的 FQDN 执行此操作?我有一个 pre-Chef 配置过程(shell 脚本),可以按照我想要的方式配置 /etc/hosts 文件,并且 FQDN 不会受到影响?

这是 Chef 中的“错误”还是至少是不良副作用?

【问题讨论】:

标签: chef-infra ohai-gem


【解决方案1】:

我很确定这不是 Chef 的错,而是你的 Linux 机器上的初始化脚本。他们读 /etc/hosts 确定如何设置主机名。

查看/etc/sysconfig/network-scripts

您应该可以在 /etc/sysconfig/network 中覆盖它。

【讨论】:

  • 那些脚本不是只有在网络重启的时候才会运行吗?在我的 Chef 配方运行期间,我没有重新启动网络。是的,我相信我会走 /etc/sysconfig/network 路线
  • 我根据serverfault.com/questions/353158/… 更新了我的 /etc/sysconfig/network 文件,现在可以使用了。
【解决方案2】:

hosts文件格式为:

IP_address canonical_hostname [aliases...]

也就是说,IP 地址之后的第一个主机名是该系统的唯一名称,之后的任何内容都是别名。在您的示例中,您将它们颠倒过来。

通常默认情况下,您的解析器配置为首先在主机文件中查找主机名,然后使用 DNS 系统(请参阅 /etc/resolv.conf 和 /etc/host.conf)。因此,在您的系统上运行“hostname -f”来获取 FQDN 将受到您对 /etc/hosts 文件的更改的影响。

Chef (ohai) 使用解析器获取 fqdn。由于您对 /etc/hosts 的更改正在更改解析器的答案,因此它正在更改 Chef 的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 2012-02-19
    • 2023-03-11
    • 2013-12-02
    • 2011-06-01
    • 1970-01-01
    相关资源
    最近更新 更多