Deixando o jenkins executar comandos como root [closed]

2

Eu tenho um servidor Jenkins que loga no meu servidor de produção via ssh e deve reiniciar alguns serviços com systemctl restart myservice.service

Li problemas semelhantes e a solução mais comum foi esta:

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

e insira-o no arquivo sudoers.

Eu também adicionei

Defaults:jenkins !requiretty

Meu arquivo de implantação faz isso:

sudo /bin/systemctl restart myservice.service

e, apesar dos meus esforços, ainda recebo o seguinte erro:

sudo: no tty present and no askpass program specified

Eu li sobre o uso de -t quando ssh'ing, mas não tenho certeza de como faria isso, já que faço vários comandos e alguns não são comandos sudo.

Então, alguém tem uma boa solução para deixar os jenkins reiniciarem meus serviços? Eu gostaria de evitar jenkins usando root como seu usuário principal.

Editar:

Este foi um problema do meu lado. Meu jenkins ssh'd em outro servidor e não está logado como "Jenkins", então eu estava mudando as permissões para o usuário errado. A solução com

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

funciona bem ao mesmo tempo em que é o usuário certo.

    
por gempir 15.10.2016 / 12:21

0 respostas