[Jenkins] 외부에서 Jenkins 호출하기

728x90
반응형

 

 

 

 


 

들어가며

Jenkins를 이용해서 간단한 DevOps 환경을 구성하다 보면, 권한을 부여해서 컨트롤 할 수 도 있지만, 시스템 자동화를 위해서 외부에서 API를 이용해서 Jenkins를 호출 해야 하는 상황이 발생하기 도 합니다. 

간편하게 Plug In을 설치하면, 외부에서 Jenkins를 호출 할 수 있습니다. 

 

 

 

 

 


01 Jenkins 플러그인 설치

 

외부에서 Jenkins 를 호출하기 위해서는 먼저, Build Authorization Token Root Plugin 을 설치해야 합니다. 

Jenkins 관리 > 플러그인 관리 메뉴에 들어가서, Available Plugins 를 선택해서
"Build Authorization Token Root" 해당 플러그인을 검색해서 설치 해 줍니다.

 

 

 

 

 


02 빌드 유발 수정

 

플러그인 설치가 준비가 되었다면, 외부에서 호출을 하려는 프로젝트 관리메뉴에 접속합니다.

중간에 위치한 빌드 유발 설정 부분에 "빌드를 원격으로 유발" 을 선택해주고, 

Authentication Token 을 작성해 줍니다. 

 

그러면서, 원격 빌드 유발에 Sample URL 이 명시가 되어 있는데요. 

예를 들면 아래와 같은 형태입니다. <> 괄호안에 내용은 각 프로젝트에 맞게 변경되어야 합니다.

http://<JENKINS_URL>/job/<PROJECT_NAME>/build?token=<TOKEN_NAME>

 

 

 

 

 


03 외부에서 호출시 로그인 화면 출력

 

원격환경에서 URL을 호출하게 되면, 위와 같이 로그인 화면이 출력되어, 원하는 Jenkins가 정상적으로 호출 되지 않는데요. 

 

https://plugins.jenkins.io/build-token-root/

 

Build Authorization Token Root

Lets <code>build</code> and related REST build triggers be accessed even when anonymous users cannot see Jenkins.

plugins.jenkins.io

해당 플러그인 사이트에 방문하게 되면, URL 형식이 다르다는 것을 알 수 있습니다. 

 

 

 

 

 

 


04 호출 URL 변경

 

http://<JENKINS_URL>/buildByToken/build?job=<PROJECT_NAME>&token=<TOKEN_NAME>

호출하는 URL을 Build Authorization Token Root 에서 제공하는 방식으로 변경했더니, 별도의 로그인 없이도 Jenkins를 외부에서 호출 할 수 있었습니다. 

 

 

 

 

 

 

 

참조

https://plugins.jenkins.io/build-token-root/

 

 

 

 

 

 

 

END


 

 

 

 

 

 

 

 

 

728x90