
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
올바른 사용자라면 잘 작동합니다.