Capistrano se bloque lorsque vous demandez le mot de passe SUDO à une boîte Ubuntu

StackOverflow https://stackoverflow.com/questions/431925

  •  08-07-2019
  •  | 
  •  

Question

J'ai une recette de déploiement capistrano que j'utilise depuis un certain temps pour déployer mon application Web, puis redémarrez apache / nginx à l'aide de la commande sudo. Récemment, cap deploy est suspendu lorsque j'essaie d'exécuter ces commandes sudo. Je vois la sortie: " [sudo] mot de passe pour " Avec mon nom de serveur et la connexion à distance, mais ce n'est pas une invite de connexion sécurisée. Le shell est en attente de plus de résultats et ne me permet pas de saisir mon mot de passe pour exécuter la commande sudo à distance.

Existe-t-il un moyen de résoudre ce problème ou de trouver un travail décent? Je ne voulais pas supprimer l'invite de mot de passe sudo de mon utilisateur distant pour les commandes de redémarrage Web.

Était-ce utile?

La solution

Cela semble également se produire lors de la connexion à des machines CentOS. Ajoutez la ligne suivante dans votre fichier de déploiement capistrano:

default_run_options[:pty] = true

Veillez également à utiliser l'assistant sudo au lieu d'exécuter sudo directement dans vos commandes d'exécution. Par exemple:

# not
run "sudo chown root:root /etc/my.cnf"

# but
sudo "chown root:root /etc/my.cnf"

Autres conseils

L’autre conseil est peut-être judicieux, mais j’ai constaté qu’une fois ma mise à jour vers Capistrano 2.5.3, le problème avait disparu. Je dois m'assurer que j'arrête d'exécuter les versions par défaut des outils fournis avec mon système d'exploitation.

# prevent sudo prompting for password
set :sudo_prompt, ""
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top