Capistrano si blocca quando si richiede la password SUDO a una casella Ubuntu
-
08-07-2019 - |
Domanda
Ho una ricetta di distribuzione capistrano che sto usando da un po 'di tempo per distribuire la mia app web e quindi riavviare apache / nginx usando il comando sudo. Recentemente cap deploy si blocca quando provo ad eseguire questi comandi sudo. Vedo l'output: " [sudo] password per " Con il mio nome server e il login remoto, ma questo non è un prompt di accesso sicuro. La shell cap è solo in attesa di ulteriori output e non mi consente di digitare la mia password per completare il comando sudo remoto.
C'è un modo per risolvere questo o un lavoro decente in giro? Non volevo rimuovere il prompt della password sudo del mio utente remoto per i comandi di riavvio web.
Soluzione
Questo sembra accadere anche quando ci si collega a macchine CentOS. Aggiungi la seguente riga nel file di distribuzione capistrano:
default_run_options[:pty] = true
Assicurati anche di usare l'helper sudo
invece di eseguire direttamente sudo
nei comandi di esecuzione. Ad esempio:
# not
run "sudo chown root:root /etc/my.cnf"
# but
sudo "chown root:root /etc/my.cnf"
Altri suggerimenti
L'altro consiglio può essere valido, ma ho scoperto che una volta aggiornato a Capistrano 2.5.3 il problema è scomparso. Devo assicurarmi di interrompere l'esecuzione delle versioni predefinite degli strumenti forniti con il mio sistema operativo.
# prevent sudo prompting for password
set :sudo_prompt, ""