Я создал chef-сервер на виртуальной машине (192.168.0.21). Сервер отлично работает по https (это последняя версия с сайта opscode).
knife user list
(и другие команды списка) работают нормально, возвращая правильные результаты (все пользователи/узлы/клиенты. Новые пользователи отображаются нормально).
Когда я пытаюсь загрузить кулинарную книгу на сервер, я получаю следующую ошибку:
Ошибка сети: getaddrinfo: Имя или служба неизвестны Проверьте конфигурацию ножа и настройки сети
или эта более длинная ошибка:
ОШИБКА: Ошибка сети: getaddrinfo: Имя или служба неизвестны Проверьте конфигурацию ножа и настройки сети /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in
initialize': getaddrinfo: Name or service not known (SocketError) from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in
открыть' из /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:inblock in connect' from /opt/chef/embedded/lib/ruby/1.9.1/timeout.rb:69:in
время ожидания' из /opt/chef/embedded/lib/ruby/1.9.1/timeout.rb:100:intimeout' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in
подключить' из /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:756:indo_start' from /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:745:in
запустить' из /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:172:intransmit' from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:64:in
выполнить' из /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:33:inexecute' from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/resource.rb:76:in
put' из /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.0/lib/chef/cookbook_uploader.rb:153:inblock in uploader_function_for' from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.0/lib/chef/cookbook_uploader.rb:25:in
call' из /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.0/lib/chef/cookbook_uploader.rb:25:inblock (3 levels) in setup_worker_threads' from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.0/lib/chef/cookbook_uploader.rb:24:in
loop' из /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.0/lib/chef/cookbook_uploader.rb:24:in `block (2 уровня) в setup_worker_threads'
файл knife.rb:
log_level :info
log_location STDOUT
node_name 'dony'
client_key '/home/dony/.chef/dony.pem'
validation_client_name 'chef-validator'
validation_key '/home/dony/Documents/cd/cv.pem'
chef_server_url 'https://192.168.0.21'
syntax_check_cache_path '/home/dony/.chef/syntax_check_cache'
cookbook_path [ "/home/dony/Documents/chef" ]
Поскольку другие команды к серверу работают, я не могу точно сказать, в чем проблема.
решение1
похоже, что это ошибка сервера. Полное доменное имя сервера должно быть установлено на стороне сервера.
- редактировать
/etc/hostname
, напримерyourhost.dyndns.org
- бегать:
hostname -F /etc/hostname
вот и все
решение2
Возможно, вы столкнулись со странной ошибкой в Chef или в его базовой библиотеке rest-client.
В Chef 11.10.alpha это могло бытьзаменено/исправленоуже.
Вы также можете попробовать указать фактический порт knife.rb
, например так:
chef_server_url 'https://192.168.0.21:443'
Это может помочь текущей библиотеке правильно интерпретировать местоположение.