Назад | Перейти на главную страницу

Chef bootstrap дает 401 несанкционированный доступ

Я пытаюсь запустить новый узел шеф-повара, запустив:
knife bootstrap <server ip> -x lewis -N gitlab --sudo
Но я получаю следующий результат:
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: *** Chef 10.12.0 ***
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: Client key /etc/chef/client.pem is not present - registering
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: HTTP Request Returned 401 Unauthorized: Failed to authenticate. Ensure that your client key is valid.
[Mon, 03 Sep 2012 14:45:17 +0000] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[Mon, 03 Sep 2012 14:45:17 +0000] FATAL: Net::HTTPServerException: 401 "Unauthorized"

Мой шеф-повар-сервер работает под управлением Ubuntu 12.04 x32, а машина, которую я пытаюсь загрузить, работает под управлением CentOS 6.3 x64

Есть идеи, что не так?

У меня была такая же проблема, и я исправил ее из этой темы http://comments.gmane.org/gmane.comp.sysutils.chef.user/2718

либо ssh на свой потенциальный клиентский компьютер и удалите /etc/chef/client.pem или беги быстро

ssh -t name@new.client.net "sudo rm /etc/chef/client.pem"

Бегать knife bootstrap снова, и он должен работать. Возможно, вы уже зарегистрировали эту машину на другом сервере Chef.

Это сработало для меня http://wiki.opscode.com/display/chef/Common+Errors#CommonErrors-401Unauthorized( usingvalidatorAPIclient)

Вам необходимо удалить validation.pem и перезапустить chef-server, так как он по умолчанию сломан в текущем пакете chef-server ubuntu.

Чтобы нож-бутстрап работал, добавьте записи в свой ~/.chef/knife.rb как это:

validation_client_name  "chef-validator"
validation_key          "#{ENV["HOME"]}/.chef/validation.pem"

и поместите копию /etc/chef/validation.pem файл с сервера Chef, скопированный в $HOME/.chef/validation.pem.

Если вам не нравится нож-бутстрап, есть несколько других способов настроить его автоматически.

  • создать образ ОС, например, пользовательский AMI с уже установленным файлом проверки
  • используйте пакет cloud-init, который является частью Ubuntu, для заполнения образа файлом проверки

В прошлом я умеренно успешно использовал cloud-init, но у него есть свои особенности.