Помощь команд CHEF ,

Как я могу написать эту команду в шеф-поваре?

/home/vagrant$ source ~/.rvm/scripts/rvm (->enter)

Я старался...

execute "foo" do
 command "source ~/.rvm/scripts/rvm"
 action :run
end

Короче говоря, как я могу написать простую команду в шеф-поваре? что-то не устанавливал. Благодарность!!!


person Justine Gumba    schedule 10.09.2014    source источник
comment
Я также попробовал источник кода bash foo do ~/.rvm/scripts/rvm end Ошибка выполнения действия run на ресурсе 'bash[foo]'   -  person Justine Gumba    schedule 10.09.2014


Ответы (2)


Это не то, что поддерживает Chef. source - это встроенная оболочка, а не команда, и в любом случае это не повлияет на Ruby, если это не сценарий Ruby, а сценарий оболочки. Вы можете использовать ресурс bash следующим образом:

bash 'do the needful' do
  code <<-EOH
    source ~/.rvm/scripts/rvm
    foo
  EOH
end
person coderanger    schedule 10.09.2014
comment
Спасибо, сэр!!!! как насчет ввода этой команды ‹‹echo source ~/.rvm/scripts/rvm ›› ~/.bashrc›› метод тот же? или теперь я могу использовать метод выполнения команды выполнения? - person Justine Gumba; 10.09.2014
comment
Нет, я действительно не знаю, что вы имеете в виду, но никакая комбинация этих вещей не сработает. - person coderanger; 10.09.2014
comment
@coderanger Я думаю, он хочет добавить source ~/.rvm/scripts/rvm в свой файл .bashrc. В этом случае пользователь должен быть указан в ресурсе bash (user vagrant IIRC). @JustineGumba, не могли бы вы подтвердить? - person Tensibai; 10.09.2014

Ой, забыл вернуться сюда:

bash 'do the needful' do
  user "target user"
  code <<-EOH
    echo 'source ~/.rvm/scripts/rvm' >> ${HOME}/.bashrc
  EOH
end

Я немного не уверен, что $HOME даст в этом случае, возможно, вам придется указать полный путь, например, /home/"target user"/.bashrc.

попробуй

person Tensibai    schedule 19.09.2014