让我带你走完我的步伐。
我运行一个配方,创建一个/ etc / hosts文件,并将其放入其中 格式; 注意IP 后的别名(nodex)。我以这种格式需要!
10.22.10.10 nodex server1-nodex.domain.com
只是为了测试,我统计了,但是以这种格式创建了/ 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的不良副作用吗?
答案 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的答案。