使用ERROR,Chef收敛失败:无法确定节点名称:configure node_name或配置系统的主机名和fqdn

时间:2016-04-22 03:05:34

标签: chef chef-recipe

我的服务器无法与以下消息汇合。我无法确定此错误的来源。

我正在复制并粘贴下面的client.log消息之后的厨师堆栈跟踪:

奇怪的是client.rb文件堆栈跟踪引用甚至不存在于此框中。

任何帮助将不胜感激!

http://domain.com/barang/edit/1

STACK TRACE:

[root@xyz chef]# tail client.log

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 

[2016-04-21T11:47:24-06:00] INFO: *** Chef 11.12.8 ***
[2016-04-21T11:47:24-06:00] INFO: Chef-client pid: 7309
[2016-04-21T11:47:24-06:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2016-04-21T11:47:24-06:00] ERROR: Unable to determine node name: configure node_name or configure the system's hostname and fqdn
[2016-04-21T11:47:24-06:00] ERROR: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
[2016-04-21T11:47:24-06:00] ERROR: Sleeping for 3600 seconds before trying again
[2016-04-21T11:51:10-06:00] INFO: SIGTERM received, exiting gracefully

4 个答案:

答案 0 :(得分:1)

如您所见,配置文件不存在。您必须创建它并定义提到的选项。有关详细信息,请参阅documentation

答案 1 :(得分:1)

您需要在node_name中配置/etc/chef/client.rb。有时Ohai可以自己解决这个问题,但在你的情况下看起来并不像。检查hostnamehostname -f/etc/hostname文件,了解您的服务器配置了什么。

我个人总是在chef中定义我的node_name,然后使用节点名来设置主机名和fqdn ...而不是像Chef主席推荐的那样,取决于你的设置

例如,我的client.rb看起来像是:

chef_server_url "..."
client_fork true
log_location "/var/log/chef/client.log"
validation_client_name "...-validator"
verify_api_cert true # you might not want this one unless you have a valid cert
node_name "my_node_name" # Add this line
...

来自厨师client.rb docs

  

<强>节点名称   节点的名称。确定应应用的配置并设置client_name,这是在向Chef服务器进行身份验证时使用的名称。默认值是由Ohai检测到的chef-client的FQDN。通常,Chef建议您将此设置保留为空,并让Ohai在每次主厨客户端运行期间将节点的FQDN指定为node_name。

答案 2 :(得分:1)

除此之外,请修复您的服务器,以便hostname -f显示某些内容。

答案 3 :(得分:1)

正如其他人所指出的那样,11.12.8在这一点上是一种古老的代码。您似乎确实添加了添加ohai[:machinename]以检测node_name的补丁,这意味着它应该回退到hostname(至少应该是我认为的空字符串?可以我们为主机名设置了一个空字符串?),这样可以避免异常。

也许您的ohai版本太旧而无法node[:machinename]?但ohai和厨师 - 客户的补丁几乎同时进入。

我确实是触摸node_name检测代码的最后一个人,我无法看到你将如何触及该异常...

我可以建议的最好的方法是看看你是否可以在更新版本的chef-client的omnibus安装中复制它,因为那样&#34;应该&#34;永远不会发生可能为了调试这个,我们需要知道你的机器上ohai的输出是什么(特别包括hostnamemachinenamefqdndomain值。也是运行/bin/hostname/bin/hostname -f

的输出