
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
Por lo tanto, he creado un token de autenticación para el trabajo.
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é.
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.
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
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.
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:
- apiToken para autenticar su identidad. Este valor se crea a partir de JENKINS_URL/me/configure. También verifiqueaquípara documentación
- 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¶m1_name=$PARAM1_VALUE¶m2_name=$PARAM2_VALUE"
Respuesta3
Para configurar estos permisos:
- Hacer clic
Manage Jenkins
- Hacer clic
Configure Global Security
- Eliminar
Prevent Cross Site Request Forgery exploits
- Hacer clic
save