Usuário do serviço Jenkins para reiniciar o serviço mongodb

Usuário do serviço Jenkins para reiniciar o serviço mongodb

Centos 7. Normalmente, quando desejo executar um comando sudo como um usuário não root, abro o visudo e adiciono esta linha no lugar certo:

%<userGroup> ALL= NOPASSWD: <command>

quando eu quiser reiniciar um serviço - no meu caso atual - mongodb.service com o usuário jenkins eu gostaria de fazer assim:

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

Até agora tudo bem. Então eu mudo para o usuário jenkins assim:

sudo su -s /bin/bash jenkins

Então eu testo o comando e tudo funciona bem. Eu faço o mesmo com os comandos stop/status/start e os testo também. Isso é tudo o que eu gostaria de fazer com eles. O problema é; quando executo os testes com o jenkins, ele chama esses comandos e não faz nada. Este mongodb é apenas para teste, então está tudo bem que ele só seja executado quando precisarmos. Então o que eu gostaria de saber é; Como fazer dar certo? Ou como reiniciar/parar/iniciar o serviço com um usuário do serviço?

Responder1

Apenas para o caso de outra pessoa ter o mesmo tipo de problema: não recebi nenhuma mensagem de erro para essas coisas, então decidi colocar tudo em um arquivo de script e então dar permissão para executar o arquivo de script com direitos sudo. Nesse caso, recebi esta mensagem de erro: "sudo: desculpe, você deve ter um tty para executar o sudo" Usando isso, eu poderia descobrir o problema com esta solução: https://unix.stackexchange.com/questions/122616/why-do-i-need-a-tty-to-run-sudo-if-i-can-sudo-without-a-password

informação relacionada