cómo activar el trabajo de jenkins mediante el comando curl de forma remota

cómo activar el trabajo de jenkins mediante el comando curl de forma remota

Intenté ejecutar (activar) el trabajo de jenkins (no un trabajo parametrizado) mediante el comando curl utilizando los métodos siguientes, pero muestra estos resultados. mi versión de jenkins es Jenkins 2.73.3

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

Pero dice Prohibido 403. ingrese la descripción de la imagen aquí

Por lo tanto, he creado un token de autenticación para el trabajo. ingrese la descripción de la imagen aquí

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

También da el mismo error. dice prohibido 403

Después de eso, creé un token API para el usuario de jenkins y lo intenté. ingrese la descripción de la imagen aquí

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

Pero también es lo mismo, dice Prohibido 403.

De hecho, también he seguido esta respuesta.https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/ Esto tampoco funcionó para mí.

Cada vez, está prohibido 403. Creo que no pude autenticar correctamente al usuario de jenkins.

Respuesta1

encontró la respuesta. En realidad esos pasos son correctos. Me gustaría mencionar los pasos correctos.

Cree un usuario en Jenkins, puede usar esa contraseña de usuario o token API para activar el trabajo de Jenkins. Pero crear un token API para ese usuario es mucho mejor. Pero en ambos sentidos funciona bien.

Pero debes crear un token de autenticación para Jenkins Job.

ingrese la descripción de la imagen aquí

Usando contraseña

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

Usando un token API

Cree un token API para ese usuario de Jenkins ingrese la descripción de la imagen aquí

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

estos son los resultados, usandoContraseña de usuario de jenkinsytoken API de usuario de jenkins.

ingrese la descripción de la imagen aquí

En realidad, también puedes enviar esta solicitud sin "-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

Respuesta2

Avance rápido hasta 2023

Debe pasar 2 tokens para ejecutar su trabajo de forma remota desde un script/bash.
Necesitas:

  1. apiToken para autenticar su identidad. Este valor se crea a partir de JENKINS_URL/me/configure. También verifiqueaquípara documentación
  2. Otro token de autenticación de trabajo que crea cuando habilita "Activar compilaciones de forma remota".

A continuación se muestra un ejemplo para ejecutar un trabajo con 2 parámetros, que puede modificar para terminarlo.

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"

Respuesta3

Para configurar estos permisos:

  • Hacer clicManage Jenkins
  • Hacer clicConfigure Global Security
  • EliminarPrevent Cross Site Request Forgery exploits
  • Hacer clicsave

información relacionada