====== Jenkins Remote API ====== * [[ci:jenkins|Jenkins]] Remote API * [[https://wiki.jenkins.io/display/JENKINS/Remote+access+API|Remote access API - Jenkins - Jenkins Wiki]] * [[https://github.com/cdancy/jenkins-rest|cdancy/jenkins-rest: Java client, built on top of jclouds, for working with Jenkins REST API]] CSRF Crumb 까지 자동처리해주는 Java 구현 * [[https://humanwhocodes.com/blog/2015/10/triggering-jenkins-builds-by-url/|Triggering Jenkins builds by URL - Human Who Codes]] * [[ci:jenkins|Jenkins]]에 인증이 걸려 있으면 원격 빌드시 인증 토큰을 무조건 넣어야 한다. ===== 다른 Jenkins 의 빌드 원격 유발 ===== * [[https://wiki.jenkins.io/display/JENKINS/Build+Token+Root+Plugin|Build Authorization Token Root]]을 설정하면 ''빌드를 원격으로 유발 (예: 스크립트 사용)''을 활성화하고 해당 빌드용 API Token 만 있으면, 사용자 인증 토큰 없이 빌드를 실행할 수 있다. * [[https://www.jenkins.io/doc/pipeline/steps/build-token-trigger/|build-token-trigger]] : Pipeline 으로 ''Build Authorization Token Root''를 호출하게 해줌. * **Job구성 -> 빌드 유발 -> 빌드를 원격으로 유발 -> Authentication Token** 에서 토큰을 설정한다. * 빌드 유발 examples # 파라미터 없을 경우 /buildByToken/build?job=RevolutionTest&token=TacoTuesday # 파라미터 있을 경우 : Type=Mexican /buildByToken/buildWithParameters?job=RevolutionTest&token=TacoTuesday&Type=Mexican ==== 기타 관련 참조 ==== * [[https://plugins.jenkins.io/Parameterized-Remote-Trigger/|Parameterized Remote Trigger | Jenkins plugin]] : 또 다른 Jenkins 의 job trigger - 원격 서버측 인증은 ''Build Token Root Plugin'' 을 사용하게 하면 된다. * [[https://passwordsgenerator.net/|Password Generator]]에서 Authentication Token 생성 * [[https://selenium2automate.wordpress.com/2017/05/17/triggering-remote-jenkins-jobs-from-another-jenkins/|Triggering Remote Jenkins jobs from another Jenkins | Selenium 2 Automate]] * 실제로 해보면 ''Parameterized Remote trigger'' 가 ''build token root plugin'' 설정을 올바로 못하는 것으로 보임. 그냥 [[https://plugins.jenkins.io/http_request/|HTTP Request]] 플러그인으로 ''GET %%http://[JENKINS_SERVER]/buildByToken/build?job=RevolutionTest&token=TacoTuesday%%'' 요청 하게 함.