Capistrano se cuelga cuando solicita la contraseña SUDO a un cuadro de Ubuntu
-
08-07-2019 - |
Pregunta
Tengo una receta de implementación capistrano que he estado usando durante algún tiempo para implementar mi aplicación web y luego reiniciar apache / nginx usando el comando sudo. Recientemente, el despliegue de la tapa se cuelga cuando intento ejecutar estos comandos sudo. Veo la salida: " [sudo] contraseña para " Con mi nombre de servidor y el inicio de sesión remoto, pero este no es un mensaje de inicio de sesión seguro. El caparazón de la tapa está colgando esperando más salida y no me permite escribir mi contraseña para completar el comando sudo remoto.
¿Hay alguna manera de arreglar esto o un trabajo decente? No quería eliminar la solicitud de contraseña de sudo de mi usuario remoto para los comandos de reinicio web.
Solución
Esto parece suceder también cuando se conecta a máquinas CentOS. Agregue la siguiente línea en su archivo de implementación de capistrano:
default_run_options[:pty] = true
También asegúrese de utilizar el sudo
auxiliar en lugar de ejecutar sudo
en los comandos de ejecución directamente. Por ejemplo:
# not
run "sudo chown root:root /etc/my.cnf"
# but
sudo "chown root:root /etc/my.cnf"
Otros consejos
El otro consejo puede ser sólido, pero descubrí que una vez que actualicé a Capistrano 2.5.3 el problema desapareció. Tengo que asegurarme de dejar de ejecutar las versiones predeterminadas de las herramientas que vienen con mi O / S.
# prevent sudo prompting for password
set :sudo_prompt, ""