
아래 방법을 사용하여 컬 명령을 통해 jenkins 작업(매개변수화된 작업 아님)을 실행(트리거)하려고 시도했지만 이러한 결과가 표시됩니다. 내 젠킨스 버전은 젠킨스 2.73.3입니다
curl -X POST -u jenkins_user_name:jenkins_user_passwd http://jenkins_server/job/job_name/build
curl -X POST http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf
또한 동일한 오류가 발생합니다. Forbidden 403이라고 써있네요
그 후 jenkins 사용자를 위한 API 토큰을 만들고 시도했습니다.
curl -X POST -u auto:testingdae6dc22a73048e6d596e7b0 http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf
하지만 그것도 똑같습니다. Forbidden 403이라고 적혀 있습니다.
실제로 나는 이 답변도 따랐습니다.https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/ 이것은 나에게도 효과가 없습니다.
매번 403이 금지되어 있습니다. Jenkins 사용자를 제대로 인증하지 못한 것 같습니다.
답변1
답을 찾았습니다. 실제로 그 단계는 정확합니다. 올바른 단계를 언급하고 싶습니다.
Jenkins에서 사용자를 생성하면 Jenkins 작업을 트리거하기 위해 해당 사용자 비밀번호 또는 API 토큰을 사용할 수 있습니다. 그러나 해당 사용자를 위한 API 토큰을 생성하는 것이 훨씬 좋습니다. 그러나 두 가지 방법 모두 잘 작동합니다.
하지만 Jenkins Job에 대한 인증 토큰을 만들어야 합니다.
비밀번호 사용
curl -I -u auto:<userpasswd> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf
API 토큰 사용
해당 Jenkins 사용자에 대한 API 토큰을 만듭니다.
curl -I -u auto:<user_api_token> http://<jenkins_Server>/job/test/build?token=wefiytgwiefiweihfqweiodf
다음은 결과입니다.젠킨스 사용자 비밀번호그리고젠킨스 사용자 API 토큰.
실제로 "-I" 없이도 이 요청을 보낼 수 있습니다.
curl -u auto:<jenkins_user_token> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf
curl -u auto:<jenkins_user_password> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf
답변2
2023년으로 빨리감기
스크립트/bash에서 원격으로 작업을 실행하려면 2개의 토큰을 전달해야 합니다.
당신은 다음이 필요합니다
- apiToken을 사용하여 신원을 인증하세요. 이 값은 JENKINS_URL/me/configure 에서 생성됩니다. 또한 확인여기문서화를 위해
- '원격 빌드 트리거'를 활성화할 때 생성하는 또 다른 작업 인증 토큰입니다.
다음은 2개의 매개변수를 사용하여 작업을 실행하는 샘플입니다. 조정하여 완료할 수 있습니다.
PARAM1_VALUE=<param1_value>
PARAM2_VALUE=<param2_vale>
USERNAME=dummy_user_name
JENKINS_URL="http://10.xxx.x.xxx:8080"
JOB_TOKEN="<value>" # you create this token when you enable Job>Configure>Build Triggers>Trigger builds remotely
LOGIN_API_TOKEN="<value>" #get this value from JENKINS_URL/me/configure
curl -L --user $USERNAME:$LOGIN_API_TOKEN "$JENKINS_URL/job/JobName/buildWithParameters?token=$JOB_TOKEN¶m1_name=$PARAM1_VALUE¶m2_name=$PARAM2_VALUE"
답변3
이러한 권한을 구성하려면:
- 딸깍 하는 소리
Manage Jenkins
- 딸깍 하는 소리
Configure Global Security
- 제거하다
Prevent Cross Site Request Forgery exploits
- 딸깍 하는 소리
save