Разрешение jenkins выполнять команды как root

Разрешение jenkins выполнять команды как root

У меня есть сервер jenkins, который подключается к моему производственному серверу через ssh и должен перезапускать некоторые службы с помощью systemctl restart myservice.service

Я читал о похожих проблемах, и наиболее распространенным решением было следующее:

jenkins ALL = NOPASSWD: /bin/systemctl restart myservice.service, /bin/systemctl restart myservice2.service

и вставьте его в файл sudoers.

Я также добавил

Defaults:jenkins !requiretty

Мой файл развертывания делает следующее:

sudo /bin/systemctl restart myservice.service

и несмотря на все мои усилия я все равно получаю следующую ошибку:

sudo: no tty present and no askpass program specified

Я читал об использовании -t при работе по ssh, но не уверен, как это сделать, поскольку я выполняю несколько команд, и некоторые из них не являются командами sudo.

Так есть ли у кого-нибудь хорошее решение, чтобы позволить jenkins перезапустить мои службы? Я бы хотел избежать использования jenkins root в качестве основного пользователя.

Редактировать:

Это была проблема на моей стороне. Мой jenkins подключился по ssh к другому серверу и не вошел как "jenkins", поэтому я менял разрешения для неправильного пользователя. Решение с

jenkins ALL = NOPASSWD: /bin/systemctl restart myservice.service, /bin/systemctl restart myservice2.service

работает отлично, если им пользуется правильный пользователь.

Связанный контент