Capistrano зависает при запросе пароля SUDO на ящик с Ubuntu - PullRequest
18 голосов
/ 11 января 2009

У меня есть рецепт развертывания capistrano, который я использовал в течение некоторого времени для развертывания своего веб-приложения, а затем перезапустите apache / nginx с помощью команды sudo. В последнее время cap deploy зависает, когда я пытаюсь выполнить эти команды sudo. Я вижу вывод: "[sudo] пароль для" С моим именем сервера и удаленным входом в систему, но это не безопасное приглашение входа в систему. Оболочка cap просто висит в ожидании дополнительных выходных данных и не позволяет мне вводить пароль для завершения удаленной команды sudo.

Есть ли способ исправить это или приличную работу? Я не хотел удалять запрос пароля sudo моего удаленного пользователя для команд перезапуска через Интернет.

Ответы [ 3 ]

32 голосов
/ 11 января 2009

Похоже, это происходит и при подключении к машинам CentOS. Добавьте следующую строку в файл развертывания Capistrano:

default_run_options[:pty] = true

Также обязательно используйте помощник sudo вместо выполнения sudo в ваших командах запуска напрямую. Например:

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

# but
sudo "chown root:root /etc/my.cnf"
2 голосов
/ 19 мая 2011
# prevent sudo prompting for password
set :sudo_prompt, ""
2 голосов
/ 14 января 2009

Другой совет может быть верным, но я обнаружил, что после обновления до Capistrano 2.5.3 проблема исчезла. Я должен убедиться, что я перестал запускать версии инструментов по умолчанию, которые поставлялись с моим O / S.

...