Jenkins 내에서 sudo 없이 명령 실행

Jenkins 내에서 sudo 없이 명령 실행

나는 많은 쉘 스크립트 명령이 포함된 여러 젠킨스 작업을 가져왔습니다. 이 명령 앞에는 sudo가 붙었습니다. Jenkins에는 자체 사용자가 있습니다. 각 명령을 작성하기 전에 sudo를 실행하지 않고도 jenkins를 통해 이러한 명령을 실행할 수 있는 방법이 있나요?

답변1

빌드 단계에서 사용되는 사용자는 슬레이브에 연결하는 데 사용되는 사용자입니다. (마스터의 경우 마스터가 실행 중인 사용자 ID입니다.)

따라서 필요한 사용자(아마도 localhost)로 SSH를 통해 연결된 슬레이브를 만들고 해당 슬레이브에서 작업을 실행하십시오.

답변2

/etc/sudoers.d/ 아래에 파일을 만듭니다. path 및 NOPASSWD를 사용하여 이 파일에 특정 명령을 추가할 수 있습니다.

username ALL=(ALL) NOPASSWD: /bin/chown tomcat.tomcat /home/harry/* username ALL=(ALL) NOPASSWD: /bin/mkdir /home/harry/*

인수의 경우,

username ALL=(ALL) NOPASSWD: /bin/mkdir * /home/harry/*

마찬가지로 이와 같은 명령을 내리고 비밀번호 없이 Jenkins에서 실행할 수 있습니다. 사용자 이름은 ssh를 통해 또는 동일한 마스터 서버에서 실행하는 데 사용하는 jenkins 사용자 이름임을 기억하세요.

관련 정보