как удаленно запустить задание jenkins с помощью команды curl

как удаленно запустить задание jenkins с помощью команды curl

Я попытался выполнить (запустить) задание jenkins (не параметризованное задание) с помощью команды curl, используя указанные ниже методы, но это дало следующие результаты. Моя версия jenkins — Jenkins 2.73.3

curl -X POST -u jenkins_user_name:jenkins_user_passwd http://jenkins_server/job/job_name/build

Но там написано Запрещено 403 введите описание изображения здесь

Поэтому я создал токен аутентификации для задания. введите описание изображения здесь

curl -X POST http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf

Он также выдает ту же ошибку. Он говорит: «Запрещено 403».

После этого я создал API-токен для пользователя jenkins и попробовал. введите описание изображения здесь

curl -X POST -u auto:testingdae6dc22a73048e6d596e7b0 http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf

Но это тоже самое, там написано Запрещено 403

На самом деле я тоже следил за этим ответом.https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/ У меня это тоже не сработало.

каждый раз, это 403 denied. Я думаю, что я не смог правильно аутентифицировать пользователя jenkins.

решение1

нашел ответ. На самом деле эти шаги правильные. Я хотел бы упомянуть правильные шаги.

Создайте пользователя в Jenkins, вы можете использовать этот пароль пользователя или API-токен для запуска задания Jenkins. Но создание API-токена для этого пользователя гораздо лучше. Но оба способа работают нормально.

Но вам нужно создать токен аутентификации для Jenkins Job.

введите описание изображения здесь

Использование пароля

curl -I -u auto:<userpasswd> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf

Использование API-токена

Создайте API-токен для этого пользователя Jenkins. введите описание изображения здесь

curl -I -u auto:<user_api_token> http://<jenkins_Server>/job/test/build?token=wefiytgwiefiweihfqweiodf

вот результаты, используяПароль пользователя jenkinsитокен API пользователя jenkins.

введите описание изображения здесь

На самом деле вы можете отправить этот запрос и без «-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 год

Вам нужно передать 2 токена для удаленного выполнения вашей работы из скрипта/bash.
Вам нужно:

  1. 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&param1_name=$PARAM1_VALUE&param2_name=$PARAM2_VALUE"

решение3

Чтобы настроить эти разрешения:

  • НажмитеManage Jenkins
  • НажмитеConfigure Global Security
  • УдалятьPrevent Cross Site Request Forgery exploits
  • Нажмитеsave

Связанный контент