在处理FQDN时,这是一个Chef / ohai错误吗?

时间:2014-08-22 01:11:43

标签: chef ohai-gem

让我带你走完我的步伐。

  • 我有一个基本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

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

    10.22.10.10 server1-nodex.domain.com nodex

  • 现在如果我做了一个节点show node_name,那么Chef显示正确的FQDN,“hostname -f”

  • 也是如此

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

这是一个“虫子”或者至少是Chef的不良副作用吗?

2 个答案:

答案 0 :(得分:1)

我很确定这不是Chef的错,而是Linux盒子上的init脚本。他们读 /etc/hosts确定如何设置主机名。

查看/etc/sysconfig/network-scripts

您应该可以在/etc/sysconfig/network

中覆盖此内容

答案 1 :(得分:1)

主机文件格式为:

IP_address canonical_hostname [aliases...]

也就是说,IP地址后面的第一个主机名是此系统的唯一名称,之后的任何内容都是别名。你可以在你的例子中颠倒它们。

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

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