1 votes

erreur de déploiement d'une application avec Vlad, exécutant une commande sudo, sur un serveur Ubuntu

Je suis un n00b quand il s'agit de ssh, sudo et d'autres choses unix ... alors soyez indulgent avec moi, ici.

J'ai déjà un site web Rails configuré et déployé avec vlad via ssh. Cela fonctionne bien. Maintenant, j'ai besoin que mon processus de déploiement exécute une commande sudo pour redémarrer monit.

je veux simplement exécuter "sudo monit reload" et "sudo monit start my_job_name". mais lorsque je demande à vlad d'exécuter ces commandes, j'obtiens des erreurs du serveur ubuntu :

sudo: no tty present and no askpass program specified

J'ai fait quelques recherches sur Google et la plupart des réponses que j'ai trouvées impliquent la modification de /etc/sudoers pour ne pas exiger de mot de passe pour les commandes que je veux. je n'aime pas cette option, honnêtement. cela ressemble à un piratage / contournement alors que je devrais pouvoir configurer mon serveur pour qu'il demande correctement un mot de passe et que vlad fournisse le mot de passe (après tout, vlad prend en charge un mot de passe de type ssh_password que j'ai rempli).

quelqu'un peut-il m'indiquer la bonne direction pour configurer mon vlad script et mon serveur ubuntu 10.10, pour exécuter ma commande sudo correctement ?

0voto

m33lky Points 135

Essayez ça :

set :sudo_flags, sudo_flags << '-S'
set :run_as_sudo, [sudo_cmd, sudo_flags].flatten.compact.join(' ')

Pour vos commandes, faites :

run "#{run_as_sudo} cmd"

Il devrait vous demander votre mot de passe au moment de l'exécution.

0voto

Sonamor Points 212

Vous pouvez modifier /etc/sudoers et retirer requiretty afin que sudo fonctionne lorsqu'il n'y a pas de tty disponible (par exemple, à partir de tâches cron, de démons, etc.). Vous n'avez pas besoin d'autoriser sudo sans mot de passe, supprimez simplement cette option.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X