我正在使用厨师刀启动新的ec2实例。 这工作通常很好,但每2-3次尝试失败,我得到以下堆栈:
[Sun, 10 Apr 2011 08:11:23 +0000] INFO: Client key /etc/chef/client.pem is not present - registering [Sun, 10 Apr 2011 08:11:29 +0000] WARN: HTTP Request Returned 401 Unauthorized: Failed to authenticate as i-XXXXXXX. Ensure that your node_name and client key are correct. /usr/lib/ruby/1.8/net/http.rb:2101:in `error!': 401 "Unauthorized" (Net::HTTPServerException) from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/rest.rb:234:in `api_request' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/rest.rb:285:in `retriable_rest_request' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/rest.rb:215:in `api_request' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/rest.rb:111:in `get_rest' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/node.rb:525:in `load' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/node.rb:510:in `find_or_create' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/client.rb:218:in `build_node' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/client.rb:145:in `run' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/application/client.rb:222:in `run_application' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/application/client.rb:212:in `loop' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/application/client.rb:212:in `run_application' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/application.rb:62:in `run' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/chef-client:26 from /usr/bin/chef-client:19:in `load' from /usr/bin/chef-client:19
这是一个非确定性的失败(可能与竞争条件有关?)。
这件事情还在发生吗? 尝试使用validation客户端自动生成新的Chef Client时发生错误。 如果发生这种情况,您可以检查/etc/chef/client.rbconfiguration文件中的validation客户端名称,并validationChef Serverconfiguration是否正确。 如果间歇性地发生这种情况,可以尝试使用-l debug重新运行目标节点上的chef-client,以获取有关生成新客户端的HTTP请求的更多输出。
虽然这可能不是您确切的问题,但您需要知道,在EC2上创build实例并不总是成功。 有时候,在你试图创build你的实例的AZ中没有足够的容量,对于那个特定的类。
Ylastic的Twitter帐户显示的信息EC2错误消息似乎并不总是显示在亚马逊服务运行状况仪表板上 ,有时会显示如下消息:
#AWS #EC2 (California) : Insufficient Instance Capacity for m1.large
当你看到这个问题的时候,尝试创build(然后摧毁,你不想为他们付钱)!在另一个地区或AZ的一些实例。