
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
Portanto, criei um token de autenticação para o trabalho
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.
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
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
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.
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:
- apiToken para autenticar sua identidade. Este valor é criado a partir de JENKINS_URL/me/configure . Verifique tambémaquipara documentação
- 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¶m1_name=$PARAM1_VALUE¶m2_name=$PARAM2_VALUE"
Responder3
Para configurar essas permissões:
- Clique
Manage Jenkins
- Clique
Configure Global Security
- Remover
Prevent Cross Site Request Forgery exploits
- Clique
save