como acionar o trabalho do Jenkins via comando curl remotamente

como acionar o trabalho do Jenkins via comando curl remotamente

Eu tentei executar (acionar) o trabalho jenkins (não um trabalho parametrizado) por meio do comando curl usando os métodos abaixo, mas mostrando esses resultados. minha versão do Jenkins é Jenkins 2.73.3

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

Mas diz Proibido 403 insira a descrição da imagem aqui

Portanto, criei um token de autenticação para o trabalho insira a descrição da imagem aqui

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

Também está dando o mesmo erro. diz Proibido 403

Depois disso, criei um token de API para o usuário jenkins e tentei. insira a descrição da imagem aqui

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

Mas também é o mesmo, diz Proibido 403

Na verdade, eu também segui esta resposta.https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/ isso também não funcionou para mim.

toda vez, é 403 proibido. Acho que não consegui autenticar o usuário Jenkins corretamente.

Responder1

encontrei a resposta. Na verdade, essas etapas estão corretas. Gostaria de mencionar os passos corretos.

Crie um usuário no Jenkins, você pode usar essa senha de usuário ou token de API para acionar o trabalho do Jenkins. Mas criar um token de API para esse usuário é muito melhor. Mas as duas formas funcionam bem.

Mas você precisa criar um token de autenticação para o trabalho Jenkins

insira a descrição da imagem aqui

Usando senha

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

Usando um token de API

Crie um token de API para esse usuário Jenkins insira a descrição da imagem aqui

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

estes são os resultados, usandoSenha do usuário jenkinsetoken de API do usuário Jenkins.

insira a descrição da imagem aqui

Na verdade você pode enviar esta solicitação, sem "-I" também.

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

Responder2

Avanço rápido para 2023

Você precisa passar 2 tokens para executar seu trabalho remotamente a partir de um script/bash.
Você precisa:

  1. apiToken para autenticar sua identidade. Este valor é criado a partir de JENKINS_URL/me/configure . Verifique tambémaquipara documentação
  2. Outro token de autenticação de trabalho que você cria ao ativar 'Acionar compilações remotamente'.

Abaixo está um exemplo para executar o trabalho com 2 parâmetros, você pode ajustar para terminar.

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"

Responder3

Para configurar essas permissões:

  • CliqueManage Jenkins
  • CliqueConfigure Global Security
  • RemoverPrevent Cross Site Request Forgery exploits
  • Cliquesave

informação relacionada