刀ec2:主机名更改后需要避免重新加速服务器

时间:2015-05-11 23:04:34

标签: amazon-ec2 centos chef hostname knife

我可能做错了,但情况就是这样。独立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

你能告诉我,我该怎么办才能避免双重靴子?

1 个答案:

答案 0 :(得分:1)

将您希望节点使用的节点名称与“-N hostname”一起传递给bootstrap命令。然后它将使用最终节点名称正确注册。