2012-09-14 17 views
5

Ho circa 20 lavori utilizzando parametri comuni (utente, password) e talvolta la password scade ... Quindi devo cambiarlo su tutti i lavori, il che richiede molto tempo (e soggetto a errori, potrei dimenticarlo).Hudson/Jenkins: condividi i parametri tra più lavori

ho pensato su:

  • utilizzando una sorta di file di proprietà magia se questo esiste per avere direttamente linee come chiave, valore aggiunto nella Parametri del lavoro
  • aggiungere lo stesso tipo di chiave, coppia di valori direttamente all'interno build.xml, ma dove? Ed è davvero brutto ... Forse con un XML dedicato incorporato nello build.xml?
  • chiamando un lavoro schiavo che (come?) Spingere verso l'alto al genitore uno i valori desiderati ...

Come potete vedere sto solo a partire a Hudson/Jenkins (sto usando Jenkins 1.424.2.2), grazie per il tuo aiuto!

EDIT: Io non sono amministratore dell'istanza Jenkins, quindi non posso avere accesso alle proprietà globali ...

risposta

0

fine ho sostituito da:

  • mantenere credenziali crittografate in una pagina web
  • recuperandoli in Hudson grazie ad uno script di shell (wget), li decifrare, e la creazione di un file build.properties nell'area di lavoro con le linee name=value (nel mio caso ssh.password=...)

Questo funziona, perché i passaggi di Ant rilevano questo file e passano le variabili all'interno del loro contesto. Grazie a ciò ho potuto centralizzare le mie credenziali.

1

Mi vengono in mente due approcci:

  • Usa globale Proprietà, disponibile in Gestisci Jenkins ->Configura il sistema. Qui puoi definire le variabili di ambiente che dovrebbero essere disponibili per tutti i lavori.

  • Scrivere un piccolo script che scarica, modifica e invia la configurazione del lavoro: http://[jenkinshost]/job/[jobname]/config.xml.

potete leggere le capacità api sotto http://[jenkinshost]/job/[jobname]/api, qui è quello che dice sulla lettura e la modifica config.xml:

Fetch/Aggiornamento config.xml

al livello di programmazione ottenere config.xml, premere [http://[jenkinshost]/job/[jobname]/config.xml]. È inoltre possibile POST un config.xml aggiornato per lo stesso URL per aggiornare la configurazione di un lavoro con .

+0

Come detto sopra, non sono amministratore, quindi non posso accedere alle proprietà globali; ma la seconda soluzione sembra promettente, vediamo se riesco a fare quello che voglio giocare con esso ... – Emmanuel

6

Vai al tuo Jenkins casa e navigare:

  1. Gestisci Jenkins>
  2. Configure System>
  3. proprietà globali>
  4. Variabili d'ambiente>....
+0

Buon punto: come ho appena modificato, non sono un amministratore quindi non posso usare le proprietà globali (e gli amministratori non mi lascerò giocare con loro, di sicuro). – Emmanuel

+1

:(ho perso la modifica in fretta, ad ogni modo il secondo approccio di Anders sembra essere il modo giusto ora, altrimenti possiamo chiamare @Koshuke :) –

+0

Oh non l'hai perso, l'ho appena aggiunto perché hai parlato delle proprietà globali: -) – Emmanuel

Problemi correlati