J'ai configuré jenkins dans spinnaker comme suit et ai configuré le pipeline de spinnaker.
jenkins:
# If you are integrating Jenkins, set its location here using the baseUrl
# field and provide the username/password credentials.
# You must also enable the "igor" service listed separately.
#
# If you have multiple jenkins servers, you will need to list
# them in an igor-local.yml. See jenkins.masters in config/igor.yml.
#
# Note that jenkins is not installed with Spinnaker so you must obtain this
# on your own if you are interested.
enabled: ${services.igor.enabled:false}
defaultMaster:
name: default
baseUrl: http://server:8080
username: spinnaker
password: password
Mais je vois l'erreur suivante lorsque j'essaie de lancer un pipeline de spinnaker.
Exception ( Start Jenkins Job )
403 No valid crumb was included in the request
Enfin, ce message m'a aidé à résoudre le problème de la miette, tout en protégeant Jenkins de l'attaque CSRF.
Solution pour la miette non valide incluse dans la demande
Fondamentalement, nous devons d'abord demander l'authentification par crumb, puis émettre POST les appels api avec crumb comme en-tête avec l'authentification à nouveau.
C'est comme ça que je l'ai fait,
curl -v -X GET http://jenkins-url:8080/crumbIssuer/api/json --user <username>:<password>
La réponse a été
{
"_class":"hudson.security.csrf.DefaultCrumbIssuer",
"crumb":"0db38413bd7ec9e98974f5213f7ead8b",
"crumbRequestField":"Jenkins-Crumb"
}
Ensuite, l’API POST avec les informations ci-dessus sur la miette.
curl -X POST http://jenkins-url:8080/job/<job-name>/build --user <username>:<password> -H 'Jenkins-Crumb: 0db38413bd7ec9e98974f5213f7ead8b'