Utils [JenKins] Jenkins sudo: not found Build step ‘Execute shell’ marked build as failure 권한 에러 해결하기

[JenKins] Jenkins sudo: not found Build step ‘Execute shell’ marked build as failure 권한 에러 해결하기

[JenKins] Jenkins sudo: not found Build step ‘Execute shell’ marked build as failure 권한 에러 해결하기 post thumbnail image

Jenkins로 docker 이미지를 빌드하고 hub에 푸시하는 과정을 .sh 파일 하나를 실행해서 한꺼번에 수행하려고 합니다. 하지만 Jenkins가 ec2 서버에서  sudo 명령어를 실행하려면, Jenkins에게 따로 권한을 줘야합니다. 권한을 주지 않고 빌드하면 sudo: not found Build step ‘Execute shell’ marked build as failure 같은 에러가 납니다.

그래서 root 계정으로 들어가서 /etc/sudoers 파일을 수정해줍시다.

su # 루트 계정으로 접속하기, password 를 모른다면 초기 설정해주시면 됩니다.
cd /etc # etc 폴더로 들어가서
vi sudoers # root 권한으로 sudoers 파일 열기

sudoers 파일로 들어가서, jenkins에게 권한을 줍니다. 만약 젠킨스에게 모든 권한을 주는 것이 보안 상의 이유로 걱정이 된다면, jenkins가 실행해야하는 파일 경로를 적어서 그 파일 실행에만 권한을 부여해주시면 됩니다.

jenkins ALL=(ALL) NOPASSWD: ALL jenkins ALL=(ALL) NOPASSWD: 파일 경로….

그러면 빌드 시 났던 에러가 사라지고 .sh 파일이 잘 실행됩니다!

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Related Post

Debug 와 Relsease 모드의 차이Debug 와 Relsease 모드의 차이

Release Mode 프로그램을 배포하기 위해 컴파일 하는 모드 -초기화 하지 않는다. -같은 문자열 상수라도 서로다른 공간에 할당한다.-디버깅정보를 삽입하지 않고 코드를 최적화하여 실행 파일 크기를 최대한 줄여준다.-속도나 크기면에서 월등이 유리하다(메모리 점유율로