2015-07-14 16 views
14

sto ottenendo il seguente errore quando provo innescando una build utilizzando il seguente comando:Jenkins innesco a distanza non funziona

ricciolo http://jenkins_server:port/jenkins/job/job_name/build?token=token_name

uscita:

Autenticazione richiesta

< - Sei autenticato come: anonimo
Gruppi in cui ti trovi :

Il permesso è necessario avere (ma non l'ha fatto): hudson.model.Hudson.Read
... che è implicito: hudson.security.Permission.GenericRead
... che è implicita : hudson.model.Hudson.Administer
->

ho diritti di admin e hanno anche permesso 'token di autenticazione'. Ho anche diritti su Build, Discover e Read su Job. Sto usando Jenkins 1.614.

Ho controllato diversi post online ma non ho trovato nulla che funzioni per me.

Provato alcune opzioni come
1) ricciolo -X POST http://jenkins_server:port/jenkins/job/job_name/build?token=token_name
2) -u utente ricciolo: API (di stampare una pagina HTML lunga)

Eventuali suggerimenti.

risposta

14

installo costruire Token Root Plugin per risolvere questo problema prima

https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin

Poi, come la stessa, l'installazione token di autenticazione

Infine, utilizzare curl per innescare a distanza costruire (Fare attenzione il carattere di escape "\")

curl http://JENKINS_URL/buildByToken/build?job=JOB_NAME\&token=TOKEN_NAME

o incollare il URL al browser (Nessun carattere di escape richiesto "\")

http://JENKINS_URL/buildByToken/build?job=JOB_NAME&token=TOKEN_NAME

Se vedi riuscito, significa che attivare Jenkins remoto con successo.

Si noti che, non c'è bisogno di impostare costruire, scoprire, e leggere i diritti sul lavoro

Per ulteriori informazioni, si può fare riferimento a https://cloudbees.zendesk.com/hc/en-us/articles/204338790-Why-are-builds-not-being-triggered-with-Build-Token-Root-Plugin-

+0

Ero davvero frustrato a provare cose diverse. Sono sicuro di aver visto questo suggerimento del plugin Token Root anche su qualche altro link e ho notato che il plugin era già installato sul mio sistema ma sembra che abbia trascurato la sintassi in quel momento. :(Leggendo la tua risposta, in qualche modo, ho notato la sintassi corretta.: P Grazie mille! :) Molto sollevato! :) – Technext

+0

grazie per aver sottolineato la necessità di un escape char. quello che mi mancava. – OK999

+0

Ho lo stesso problema quando provo ad integrare gitlab e jenkins. Sto usando la funzione inbuild di gitlab per testare il trigger push. Che mi lancia l'errore sopra. Cosa si può fare per risolverlo nel mio caso –

1

Installare parametrizzato Corporatura plug

https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build

Se si utilizza un token di autorizzazione per far scattare le generazioni (Job -> Configura -> 'costruire trigger' -> 'trigger costruisce da remoto (ad esempio, da script) '), è possibile accedere a:

curl -X POST http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value

+1

Il plugin è già installato e come ho già detto nel mio post, ho provato la sintassi suggerita, ma non funziona. Ho fatto lo stesso errore. – Technext

3

ti suggerisco di provare Jenkins Python API. Fornisce un'azione build_job che è estremamente facile da attivare un lavoro.

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 
+0

Dato che il suggerimento di JenTing ha funzionato per me, per ora, lo farò, ma grazie per il tuo suggerimento! Questa API potrebbe tornare utile a volte. :) – Technext

4

Ho avuto lo stesso problema dopo aver configurato un server Jenkins di prova. La soluzione era quella di autenticare usando la mia password di amministratore Jenkins:

curl -u admin:<mypassword> http://localhost:8080/job/Test/build?token=<mytoken> 

Utilizzare lo stesso nome utente e la password utilizzati per accedere al Jenkins. Non è stato necessario installare plugin aggiuntivi.

6

Penso che non c'è bisogno di creare qualsiasi tipo di plugin per rendere funziona, semplicemente fare questo LOTTO CMD:

curl -X POST http://USER_ID_JENKINS_RECEIVER:[email protected]_JENKINS_RECEIVER:PORT/job/NAME_OF_JOB/buildWithParameters?token=TOKEN_JOB_JENKINS_RECEIVER 
  • vederti USER_ID_TOKEN, vai al tuo nome utente al in alto a destra di jenkins> vai a Configura> Fai clic sul token API e verrà visualizzato.

  • è necessario configurare un gettone sul JOB_OF_JENKINS_RECEIVER

devo dire che funziona perfettamente su Jenkins, senza alcun tipo di autorizzazioni agli utenti anonimi.

+0

Ho lo stesso problema quando provo ad integrare gitlab e jenkins. Sto usando la funzione inbuild di gitlab per testare il trigger push. Che mi lancia l'errore sopra. Cosa si può fare per risolverlo nel mio caso –

0

Su 1.625.3, dando anonimo accesso in lettura a quasi tutto ha funzionato per me

Problemi correlati