Пользователь службы Jenkins перезапускает службу mongodb

Пользователь службы Jenkins перезапускает службу mongodb

Centos 7. Обычно, когда я хочу выполнить команду sudo как пользователь, не являющийся пользователем root, я открываю visudo и добавляю эту строку в нужное место:

%<userGroup> ALL= NOPASSWD: <command>

когда я хочу перезапустить службу - в моем текущем случае - mongodb.service с пользователем jenkins, я бы хотел сделать это следующим образом:

%jenkins ALL= NOPASSWD: /usr/bin/systemctl restart mongod.service

Пока все хорошо. Затем я переключаюсь на пользователя jenkins следующим образом:

sudo su -s /bin/bash jenkins

Затем я тестирую команду, и все работает нормально. Я делаю то же самое с командами stop/status/start и тоже тестирую их. Это все, что я хотел бы с ними сделать. Проблема в том, что когда я запускаю тесты с jenkins, он вызывает эти команды и ничего не делает. Этот mongodb предназначен только для тестирования, поэтому нормально, что он запускается только тогда, когда нам это нужно. Так что я хотел бы узнать, как заставить это работать? Или как иметь возможность перезапускать/останавливать/запускать службу с пользователем службы?

решение1

На всякий случай, если кто-то еще столкнется с такой же проблемой: я не получил никаких сообщений об ошибках для этих вещей, поэтому я решил поместить все в файл сценария, а затем дать разрешение на запуск файла сценария с правами sudo. В этом случае я получил это сообщение об ошибке: "sudo: извините, у вас должен быть tty для запуска sudo" Используя это, я мог бы отследить проблему с помощью этого решения: https://unix.stackexchange.com/questions/122616/почему-мне-нужен-терминал-для-запуска-sudo-если-я-могу-sudo-без-пароля

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