Я использую поварской нож для запуска новых экземпляров 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
Это недетерминированный сбой (может быть, это как-то связано с состоянием гонки?).
Это все еще происходит с вами? Ошибка произошла при попытке использовать клиент проверки для автоматического создания нового Chef Client. Если это произойдет, вы можете проверить конфигурационный файл /etc/chef/client.rb на предмет имени клиента проверки и убедиться, что оно соответствует конфигурации вашего Chef Server. Если это происходит с перерывами, вы можете попробовать повторно запустить chef-client на целевом узле с помощью -l debug, чтобы получить больше информации о HTTP-запросе, который создает нового клиента.
Хотя это может не быть вашей конкретной проблемой, вы должны знать, что создание экземпляра на EC2 не всегда удается. Иногда не хватает емкости в зоне доступности, в которой вы пытаетесь создать свой экземпляр, для этого конкретного класса.
Аккаунт Ylastic в Twitter, который показывает информативные сообщения об ошибках EC2, которые не всегда появляются на Панель мониторинга работоспособности сервиса Amazon, иногда есть сообщения вроде этот:
#AWS #EC2 (California) : Insufficient Instance Capacity for m1.large
Пока вы видите эту проблему, попробуйте создать (а затем уничтожить, вы не хотите платить за них вечно!) Несколько экземпляров в другом регионе или Аризона.