Я пытаюсь настроить автоматическое развертывание для своего приложения Rails с помощью 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, чтобы он работал?
Спасибо!
Связан ли rvm с активным экземпляром ruby? То есть существует ли какая-то символическая ссылка под названием /home/peddiemarketdeploy/.rvm/gems/$active
что указывает на то, что есть активная версия? Если да, то разрешите sudo для /home/peddiemarketdeploy/.rvm/gems/$active/bin/bundle
. В противном случае напишите сценарий оболочки (не в оболочке, а Perl или питон), который выбирает правильную версию и позволяет людям запускать ее с помощью sudo.