Я пытаюсь настроить автоматическое развертывание для моего приложения Rails с помощью Capistrano. Capistrano нужно будет запустить sudo kill
, и я добился этого без запроса пароля, отредактировав /etc/sudoers
файл (через visudo
, конечно), и добавив следующую строку:
%deployers ALL= NOPASSWD: /bin/kill
Однако, поскольку я использую однопользовательскую установку RVM, bundle
исполняемый файл находится по адресу /home/peddiemarketdeploy/.rvm/gems/ruby-1.9.3-p194/bin/bundle
, поэтому я аналогичным образом добавил
%deployers ALL= NOPASSWD: /home/peddiemarketdeploy/.rvm/gems/*
в этом файле, а также, и попытался запустить sudo bundle
, но sudo все еще запрашивает у меня пароль. Поскольку RVM использует номер версии в названии каталогов, я не хочу жестко кодировать путь в /etc/sudoers
. Есть идеи, как мне отредактировать мой файл sudoers, чтобы это заработало?
Спасибо!
решение1
Связан ли rvm каким-либо образом с активным экземпляром ruby? То есть, есть ли какая-то символическая ссылка, /home/peddiemarketdeploy/.rvm/gems/$active
которая указывает на активную версию? Если да, то разрешите sudo для /home/peddiemarketdeploy/.rvm/gems/$active/bin/bundle
. В противном случае напишите скрипт-обертку (не в оболочке, аперлилипитон), который выбирает нужную версию и позволяет людям запускать ее с помощью sudo.