젠킨스가 루트로 명령을 실행하도록 허용

젠킨스가 루트로 명령을 실행하도록 허용

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

ssh'ing 시 -t를 사용하는 방법에 대해 읽었지만 여러 명령을 수행하고 일부는 sudo 명령이 아니기 때문에 어떻게 수행할지 잘 모르겠습니다.

젠킨스가 내 서비스를 다시 시작하도록 하는 좋은 솔루션이 있는 사람이 있나요? 나는 루트를 기본 사용자로 사용하는 젠킨스를 피하고 싶습니다.

편집하다:

이것은 내 쪽의 문제였습니다. 내 jenkins가 다른 서버에 ssh로 접속했는데 "jenkins"로 로그인되어 있지 않아 잘못된 사용자에 대한 권한을 변경하고 있었습니다. 솔루션

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

올바른 사용자라면 잘 작동합니다.

관련 정보