Capistrano зависает при запросе пароля SUDO на ящик с Ubuntu

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

  •  08-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Это, похоже, происходит и при подключении к компьютерам 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"

Другие советы

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

# prevent sudo prompting for password
set :sudo_prompt, ""
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top