Как развернуть capistrano sidekiq monit с правильным разрешением
Проблема в том, когда я использую monit с capistrano. В чем мои ошибки?
INFO [843c196b] Running /usr/bin/env sudo mv /tmp/monit.conf /etc/monit/conf.d/sidekiq_admin-api_production.conf as deployer@XXXXXXXXXX
DEBUG [843c196b] Command: ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.3 /usr/bin/env sudo mv /tmp/monit.conf /etc/monit/conf.d/sidekiq_admin-api_production.conf )
DEBUG [843c196b] sudo: no tty present and no askpass program specified
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deployer@XXXXXXXXXX: sudo exit status: 1
sudo stdout: Nothing written
sudo stderr: sudo: no tty present and no askpass program specified
Я попробовал авторизацию с помощью ключа ssh.
Изменить разрешение папок для моего пользователя (/tmp/monit.conf /etc/monit/conf.d/)
набор: pty, false
set: use_sudo, false
файл sudo
Мой файл sudo:
# User privilege specification
root ALL=(ALL:ALL) ALL
deployer ALL=(ALL) NOPASSWD:ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
2 ответа
Вам необходимо добавить директиву sudo, которая позволяет запускать команду без ввода пароля. Ошибка говорит вам, что sudo пытается запросить пароль и не может. Вероятно, команда NOPASSWD.
В capistrano 3 вам нужно установить pty. Разрешение команды sudo на вашем сервере без ввода пароля может поставить под угрозу ваш сервер.
set :pty, true