2015-10-26 3 views
0

Я недавно вернулся в Linux после двухлетнего перерыва. Я пытаюсь выполнить learn Chef, чтобы автоматизировать развертывание некоторых приложений. В учебнике Chef говорится, что для запуска команды, которая устанавливает пакет, требуется sudo, что имеет смысл.Не удается запустить Chef as root

webserver.rb

package 'httpd' 

команда оболочки

sudo chef-apply webserver.rb 

Учебник отрывок:

sudo требуется, поскольку эта команда устанавливает пакет и, следовательно, должен быть запущен остроумие h привилегий root. Если вы используете root на своей собственной машине, вы можете опустить sudo из этой команды.

Я гугле вопрос у меня был и нашел "solution" that didn't work, наряду с SO question that stated you shouldn't run Chef as root. Я не уверен, покупаю ли я его.

Прежде всего, шеф-повар не предназначен для использования как корень. Многие ресурсы предполагают, что они выполняются как root, и нуждаются в этом. Они потерпят неудачу, если не работают как root.

Он также заявляет, что вы должны использовать sudo, что противоречит его предыдущему утверждению.

использование Sudo для запуска клиента шашлычника с тестовым пользователем (нужна запись в sudoers файл)

Я думаю, что он хотел сказать, что вы не должны работать Chef как корень 100% от время. Я не могу запустить Chef как root, что, похоже, противоположно тому, что пытался решить OP.

Ошибки я получаю

/opt/rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'chef' (>= 0) among 13 total gem(s) (Gem::LoadError) 
     from /opt/rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:309:in `to_spec' 
     from /opt/rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:53:in `gem' 
     from /opt/rvm/gems/ruby-2.1.5/bin/chef-apply:22:in `<main>' 
     from /opt/rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `eval' 
     from /opt/rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `<main>' 

Если учебник говорит, что вы можете запустить Chef как корень, и корень требуется для выполнения определенных рецептов, то я думаю, что шеф-повар должен работать как корень в в некоторых случаях.

Мой самый большой вопрос: как исправить эту ошибку и запустить Chef как root? Он работает отлично, как и любой другой пользователь, но сбой при попытке sudo.

+0

Вы можете управлять шеф-поваром как пользователем без полномочий root? Кажется, что вы не нашли свой поварский камень. –

+0

Я могу запустить Chef как пользователь без полномочий root. Я думал, что мне не хватает драгоценного камня шеф-повара, поэтому я установил его, а затем выполнил «rvm reset», и все сработало. –

ответ

1

Хорошо rvm reset работал в конце концов.

Итак, сообщение «solution», которое я высмеивал раньше, было на самом деле решением, которое я искал. Карма.

0

НЕ УСТАНАВЛИВАЙТЕ CHEF BY GEM. (много причин, чтобы объяснить, но доверяйте мне, используйте пакет omnibus)

Что здесь произошло, так это то, что ваш rvm переопределил порядок поиска пути и рубиновый вызов, поэтому поисковая система повара искала в rvm путь, а не во встроенный путь рубинового шеф-повара.Вызов rvm reset устраните проблему, удалив добавление переопределения/пути.


Для части «быть или не быть корнем» мой ответ на связанный с вами вопрос имел опечатку. не был забыт после переписывания, (надеюсь, остальное предложение ясное, я хочу). Спасибо за голову в любом случае.

Шеф-повар должен быть запущен как root, но он очень не рекомендуется подключаться удаленно к машине, как root.

Таким образом, вы должны использовать sudo для запуска chef-client с разрешениями root 100% времени. Шеф-повар не работает при некоторых операциях, если он работает как обычный пользователь, поскольку он предназначен для управления всей системой.

Примечание: Я говорю «должен», а не «должен», так как кто-то может найти краевой кейс, где желательно запустить шеф-повара в ограниченной среде, но я действительно думаю, что это краевой кейс, и, возможно, шеф-повар неправильный инструмент в этом случае.

+0

Спасибо за объяснение; это обеспечило ясность. –

+0

Добро пожаловать. Слишком долго для комментария к вашему ответу;) – Tensibai

+0

У меня есть противоположный опыт. Установка его в виде омнибусного пакета обеспечивала некоторые очень неприятные ошибки и проблемы. Теперь у меня есть шеф-повар, установленный с драгоценными камнями, и он отлично работает. Я должен сказать, что я тоже не использую rvm. –

Смежные вопросы