Привет всем в моем конвейере Jenkins. Мне нужно остановить системную службу, скопировать последний файл и перезапустить службу снова. Я застрял на этапе остановки системы обслуживания.
Операционная система - CentOS, а Jenkins работает под пользователем 'jenkins'.
После принятого ответа в этом сообщении (https://serverfault.com/questions/772778/allowing-a-non-root-user-to-restart-a-service) Я создал новую группу, добавил jenkins в эту группу, а затем обновил список sudo с помощью visudo. Теперь пользователь jenkins может остановить / запустить эту службу в командной строке Putty следующим образом: sudo systemctl stop <my-service>
Когда я обновил файл конвейера, как показано ниже
sh "echo stop Linux service"
sh "sudo systemctl stop <my-service>"
Я получил следующую ошибку:
+ echo stop Linux service
stop Linux service
[Pipeline] sh
+ sudo systemctl stop <my-service>
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
Если я удаляю sudo в конвейере, я получаю эту ошибку:
+ echo stop Linux service
stop Linux service
[Pipeline] sh
+ systemctl stop <my-service>
Failed to stop <my-service>: Interactive authentication required.
See system logs and 'systemctl status <my-service>' for details.
Как мне достичь своей цели, пожалуйста?