Я пытаюсь понять одну вещь и хотел бы узнать чью-то другую точку зрения на это. Я установил chef на свой сервер Ubuntu (11.10) через удивительный установка омнибуса. Он работал отлично. Мне удалось запустить chef-client, и он работал без проблем.
Затем я установил RVM и два рубина - и тут начались мои проблемы. Сразу после того, как я установил систему RVM, то есть запустив:
curl -L https://get.rvm.io | sudo bash -s stable
И установил 2 рубина (установив один из рубинов в качестве рубина по умолчанию в системе). Я больше не мог запускать chef-client - я получал «команда не найдена» при запуске от имени обычного обычного пользователя - я думал, что RVM испортит некоторые ПУТИ так вот в чем причина. Я думал, что запущу его как root, т.е.
sudo su -
chef-client
тот же результат. Затем я попробовал rvmsudo, как это предлагали некоторые люди, но это тоже не помогло. Затем я сделал последний выстрел - я запустил его как
sudo chef-client
И это отлично сработало! Я действительно озадачен, почему вышеупомянутое работает и почему запуск chef -client от имени пользователя root (т.е. sudo su-; chef-client) НЕ работает. Я что-то упускаю ? Буду очень признателен за все намеки или объяснения, так как я немного растерялся. Я хотел бы запустить chef-client в качестве демона с правами root, и я не могу сделать это с помощью приведенной выше команды sudo - я знаю, что могу установить пользователя с помощью nopasswd, и это, вероятно, сработает, но я действительно хотел бы понять, что происходит здесь;)
Похоже, у вас проблема с загрузкой пути.
Программа установки омнибуса устанавливает Chef в /opt/chef/bin/chef-client
а затем символические ссылки на /usr/bin/chef-client
ref1 чтобы он был доступен всем пользователям в $PATH
.
В тот момент, когда вы устанавливаете rvm, он будет связываться с $ PATH, в частности, с тем, какой рубин будет использовать Chef, поскольку он загрузка ruby текущего запущенного env при выполнении.
При работе с sudo su -
, вы меняете на root
окружение и запуск всех связанных загрузчиков profile / bashrc / bash_profile, которые настраивают среду пользователя.
При работе с sudo
, вы не загружаете всю среду, поэтому RVM не будет менять пути.
Еще один тест, который вы можете увидеть, чтобы увидеть влияние различий в оболочке, - это запустить:
sudo which ruby
sudo su - which ruby
И сравните различия.
Вы можете посмотреть на повар-клиент Cookbook, который после запуска поможет вам настроить сервисный демон для управления / настройки вашего сервиса chef-client (мы используем его на всех наших серверах).
Поскольку rvm устанавливается по умолчанию для всей системы, вам, возможно, придется отключить его для пользователя root (или пользователя, от имени которого вы хотите запускать Chef, но я бы предложил root).