
Ich habe versucht, einen Jenkins-Job (keinen parametrisierten Job) über den Curl-Befehl mithilfe der folgenden Methoden auszuführen (auszulösen), aber es werden diese Ergebnisse angezeigt. Meine Jenkins-Version ist Jenkins 2.73.3
curl -X POST -u jenkins_user_name:jenkins_user_passwd http://jenkins_server/job/job_name/build
Daher habe ich ein Authentifizierungstoken für den Job erstellt
curl -X POST http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf
Es wird auch der gleiche Fehler angezeigt. Es heißt Verboten 403
Danach habe ich ein API-Token für den Jenkins-Benutzer erstellt und es versucht.
curl -X POST -u auto:testingdae6dc22a73048e6d596e7b0 http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf
Aber es ist auch das gleiche, es heißt Verboten 403
Eigentlich bin ich dieser Antwort auch gefolgt.https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/ das hat bei mir auch nicht funktioniert.
jedes Mal ist es 403 Forbidden. Ich glaube, ich konnte den Jenkins-Benutzer nicht richtig authentifizieren.
Antwort1
habe die Antwort gefunden. Tatsächlich sind diese Schritte richtig. Ich möchte die richtigen Schritte erwähnen.
Erstellen Sie einen Benutzer in Jenkins. Sie können dieses Benutzerkennwort oder API-Token verwenden, um einen Jenkins-Job auszulösen. Aber das Erstellen eines API-Tokens für diesen Benutzer ist viel besser. Aber beide Möglichkeiten funktionieren einwandfrei.
Aber Sie müssen ein Authentifizierungstoken für Jenkins Job erstellen
Passwort verwenden
curl -I -u auto:<userpasswd> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf
Verwenden eines API-Tokens
Erstellen Sie ein API-Token für diesen Jenkins-Benutzer
curl -I -u auto:<user_api_token> http://<jenkins_Server>/job/test/build?token=wefiytgwiefiweihfqweiodf
Dies sind die Ergebnisse unter VerwendungJenkins-BenutzerkennwortUndJenkins-Benutzer-API-Token.
Eigentlich können Sie diese Anfrage auch ohne „-I“ senden.
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
Antwort2
Schneller Vorlauf bis 2023
Sie müssen 2 Token übergeben, um Ihren Job remote von einem Skript/Bash aus auszuführen.
Sie benötigen:
- apiToken zur Authentifizierung Ihrer Identität. Dieser Wert wird aus JENKINS_URL/me/configure erstellt. Überprüfen Sie auchHierzur Dokumentation
- Ein weiteres Job-Authentifizierungstoken, das Sie erstellen, wenn Sie „Builds remote auslösen“ aktivieren.
Unten sehen Sie ein Beispiel für die Auftragsausführung mit zwei Parametern, die Sie je nach Bedarf anpassen können.
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"
Antwort3
So konfigurieren Sie diese Berechtigungen:
- Klicken
Manage Jenkins
- Klicken
Configure Global Security
- Entfernen
Prevent Cross Site Request Forgery exploits
- Klicken
save