Estoy intentando configurar la implementación automática para mi aplicación Rails usando Capistrano. Capistrano necesitará ejecutar sudo kill
, y lo logré sin que me pidiera una contraseña, editando el /etc/sudoers
archivo (a través de visudo
, por supuesto), y agregué la siguiente línea:
%deployers ALL= NOPASSWD: /bin/kill
Sin embargo, dado que estoy usando la configuración de usuario único de RVM, el bundle
ejecutable está en /home/peddiemarketdeploy/.rvm/gems/ruby-1.9.3-p194/bin/bundle
, por lo que, de manera similar, agregué
%deployers ALL= NOPASSWD: /home/peddiemarketdeploy/.rvm/gems/*
en ese archivo también, e intenté ejecutarlo sudo bundle
, pero sudo todavía me pide una contraseña. Dado que RVM usa el número de versión en el nombre de los directorios, no quiero codificar una ruta en /etc/sudoers
. ¿Alguna idea de cómo puedo editar mi archivo sudoers para que funcione?
¡Gracias!
Respuesta1
¿Rvm se vincula de alguna manera con la instancia activa de Ruby? Es decir, ¿hay algún tipo de enlace simbólico llamado /home/peddiemarketdeploy/.rvm/gems/$active
que apunte a la versión activa que sea? Si es así, permita sudo para /home/peddiemarketdeploy/.rvm/gems/$active/bin/bundle
. De lo contrario, escriba un script contenedor (no en el shell, sinoperlaopitón) que elige la versión correcta y permite que las personas la ejecuten usando sudo.