我的服务器无法与以下消息汇合。我无法确定此错误的来源。
我正在复制并粘贴下面的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
答案 0 :(得分:1)
如您所见,配置文件不存在。您必须创建它并定义提到的选项。有关详细信息,请参阅documentation。
答案 1 :(得分:1)
您需要在node_name
中配置/etc/chef/client.rb
。有时Ohai可以自己解决这个问题,但在你的情况下看起来并不像。检查hostname
,hostname -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的输出是什么(特别包括hostname
,machinename
,fqdn
和domain
值。也是运行/bin/hostname
和/bin/hostname -f
。