Estou tentando configurar a implantação automática para meu aplicativo Rails usando Capistrano. O Capistrano precisará rodar o sudo kill
, e consegui isso sem que ele me pedisse senha, editando o /etc/sudoers
arquivo (via visudo
, claro), e adicionei a seguinte linha:
%deployers ALL= NOPASSWD: /bin/kill
No entanto, como estou usando a configuração de usuário único RVM, o bundle
executável está em /home/peddiemarketdeploy/.rvm/gems/ruby-1.9.3-p194/bin/bundle
, então, da mesma forma, adicionei
%deployers ALL= NOPASSWD: /home/peddiemarketdeploy/.rvm/gems/*
nesse arquivo também e tentei executar sudo bundle
, mas o sudo ainda me pede uma senha. Como o RVM usa o número da versão no nome dos diretórios, não quero codificar um caminho em /etc/sudoers
. Alguma idéia de como posso editar meu arquivo sudoers para que funcione?
Obrigado!
Responder1
O rvm de alguma forma está vinculado à instância ativa do Ruby? Ou seja, existe algum tipo de link simbólico chamado /home/peddiemarketdeploy/.rvm/gems/$active
que aponta para qualquer que seja a versão ativa? Nesse caso, permita o sudo para /home/peddiemarketdeploy/.rvm/gems/$active/bin/bundle
. Caso contrário, escreva um script wrapper (não em shell, masperlouPitão) que escolhe a versão correta e permite que as pessoas a executem usando o sudo.