Je reçois l'erreur suivante lorsque j'essaie de déclencher une construction à l'aide de la commande suivante:
curl http: // serveur_jenkins: port/jenkins/job/nom_travail/build? token = nom_conable
Sortie:
Identification requise
<-- Vous êtes authentifié comme: anonyme
Groupes dans lesquels vous vous trouvez:Permission dont vous avez besoin (mais pas): hudson.model.Hudson.Lire
... qui est impliqué par: hudson.security.Permission.GenericRead
... qui est impliqué par: hudson.model.Hudson.Administer
->
J'ai des droits d'administrateur et j'ai également activé le «jeton d'authentification». J'ai aussi les droits Construire, Découvrir et Lire sur Job. J'utilise Jenkins 1.614.
J'ai vérifié plusieurs articles en ligne mais je n'ai rien trouvé qui me convienne.
Essayé quelques options telles que
1) curl -X POST http: // serveur_jenkins: port/jenkins/job/nom_travail/build? Token = nom_corps
2) curl -u user: API (Imprime une longue page HTML)
Aucune suggestion.
J'installe Build Token Root Plugin pour résoudre ce problème avant
https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin
Ensuite, configurez le jeton d'authentification.
Enfin, utilisez curl pour déclencher la construction à distance (faites attention au caractère d'échappement "\")
curl http://JENKINS_URL/buildByToken/build?job=JOB_NAME\&token=TOKEN_NAME
ou collez l'URL dans votre navigateur (aucun caractère d'échappement requis "\")
http://JENKINS_URL/buildByToken/build?job=JOB_NAME&token=TOKEN_NAME
Si vous voyez Succeed, cela signifie que le déclenchement de Jenkins à distance a réussi.
Notez que vous ne devez pas configurer les droits de génération, de découverte et de lecture sur les tâches.
Pour plus d'informations, vous pouvez vous référer à https://cloudbees.zendesk.com/hc/en-us/articles/204338790-Why-are-builds-not-being-triggered-with-Build-Token -Root-Plugin-
Je pense qu'il n'est pas nécessaire de configurer un plugin quelconque pour le faire fonctionner, il suffit de faire ceci BATCH CMD:
curl -X POST http://USER_ID_JENKINS_RECEIVER:TOKEN_OF_USER_ID_JENKINS_RECEIVER@URL_JENKINS_RECEIVER:PORT/job/NAME_OF_JOB/buildWithParameters?token=TOKEN_JOB_JENKINS_RECEIVER
Pour vous voir USER_ID_TOKEN , allez à votre nom d'utilisateur en haut à droite de jenkins> allez à Configurer> Cliquez sur le jeton de l'API et il sera affiché.
Vous devez configurer un jeton sur le JOB_OF_JENKINS_RECEIVER
Je dois dire que cela fonctionne parfaitement sur Jenkins sans aucune autorisation aux utilisateurs anonymes.
J'ai eu le même problème après la mise en place d'un serveur de test Jenkins. La solution consistait à s'authentifier à l'aide de mon mot de passe administrateur Jenkins:
curl -u admin:<mypassword> http://localhost:8080/job/Test/build?token=<mytoken>
Utilisez les mêmes nom d'utilisateur et mot de passe que vous avez utilisés pour vous connecter à Jenkins. Il n'y avait pas besoin d'installer des plugins supplémentaires.
Je vous suggère d'essayer API Jenkins Python . Il fournit une action build_job
qui est très facile à déclencher un travail.
build_job(name, parameters=None, token=None)
Trigger build job.
Parameters:
name – name of job
parameters – parameters for job, or None, dict
token – Jenkins API token
Dans mon cas, l'URL et le jeton étaient corrects, mais j'avais oublié l'une des autorisations requises pour l'utilisateur de l'API qui déclenche l'URL/la génération.
Les autorisations doivent inclure au minimum la liste ici:
J'ai également fait face au même problème et je l'ai résolu.
Considérez que vous avez 2 Jenkins A et B. Si vous voulez exécuter un travail de construction présent dans Jenkins B, vous devez donner le jeton API de Jenkins B. Si vous fournissez le jeton API de Jenkins A, il indiquera l'authentification. émission uniquement.
C'est l'erreur que j'ai commise et elle a été résolue une fois que j'ai modifié le jeton de l'API correctement en fonction du Jenkins requis.
Installer le plugin de construction paramétrée
https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build
Si vous utilisez un jeton d'autorisation pour déclencher les générations (Job -> Configurer -> 'Déclencheurs de construction' -> 'Le déclencheur construit à distance (par exemple, à partir de scripts)'), vous pouvez accéder à:
curl -X POST http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value