我可能做错了,但情况就是这样。独立Chef服务器12.3.0。 CentOS 6.3在AWS上运行。
在执行knife bootstrap
期间,我正在应用hostname:default配方来更改服务器的FQDN以及其他一些配方。一切都很好。 Chef服务器显示新升级的实例,但节点名称列仍显示旧的FQDN,如 ip-xxxx.aws-region-name.compute.internal 。
然后我尝试ssh这个主机并运行chef-client
我收到以下错误:
[ec2-user@newHostName ~]$ sudo chef-client
Starting Chef Client, version 12.3.0
Chef encountered an error attempting to load the node data for "newHostName"
Authentication Error:
----------------
Failed to authenticate to the chef server (http 401).
Server Response:
----------------
Failed to authenticate as 'newHostName'. Ensure that your node_name and client key are correct.
Relevant Config Settings:
-------------------------
chef_server_url "https://chefServerDomain/organizations/organizationName"
node_name "newHostName"
client_key "/etc/chef/client.pem"
If these settings are correct, your client_key may be invalid, or
you may have a chef user with the same client name as this node.
[2015-05-04T12:36:03-07:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Chef Client failed. 0 resources updated in 0.962848623 seconds
[2015-05-04T12:36:03-07:00] ERROR: 401 "Unauthorized"
[2015-05-04T12:36:03-07:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
我已在GitHub上检查已关闭的问题#8,根据该问题我需要手动更改 client.rb 文件并包含 node_name 参数。同时,Chef client.rb文档表明我不应该这样做:
node_name用于确定应该应用哪个配置 并设置client_name(这是使用时的名称 对Chef服务器进行身份验证)。默认值已设置 自动成为chef-client的FQDN,如检测到的那样 Ohai。一般情况下,将此设置留空并让Ohai 在每个chef-client期间将节点的FQDN指定为node_name 运行是推荐的方法。
清理 / etc / chef / * 文件夹后,从Chef服务器中删除此实例并再次重新引导EC2实例,我能够使其正常工作。 FQDN在节点名称列下的Chef服务器中正确显示为 newServerName 。
你能告诉我,我该怎么办才能避免双重靴子?
答案 0 :(得分:1)
将您希望节点使用的节点名称与“-N hostname”一起传递给bootstrap命令。然后它将使用最终节点名称正确注册。