Jenkins - Guida rapida
Perché Jenkins?
Jenkins è un software che consente continuous integration. Jenkins verrà installato su un server in cui si svolgerà la build centrale. Il diagramma di flusso seguente mostra un flusso di lavoro molto semplice di come funziona Jenkins.
Insieme a Jenkins, a volte, si potrebbe anche vedere l'associazione di Hudson. Hudson è uno strumento di integrazione continua open source basato su Java molto popolare sviluppato da Sun Microsystems che è stato successivamente acquisito da Oracle. Dopo l'acquisizione di Sun da parte di Oracle, è stato creato un fork dal codice sorgente di Hudson, che ha portato all'introduzione di Jenkins.
Cos'è l'integrazione continua?
L'integrazione continua è una pratica di sviluppo che richiede agli sviluppatori di integrare il codice in un repository condiviso a intervalli regolari. Questo concetto aveva lo scopo di rimuovere il problema di trovare la successiva occorrenza di problemi nel ciclo di vita della build. L'integrazione continua richiede che gli sviluppatori abbiano build frequenti. La pratica comune è che ogni volta che si verifica un commit del codice, deve essere attivata una build.
Requisiti di sistema
JDK | JDK 1.5 o successivo |
Memoria | 2 GB di RAM (consigliato) |
Spazio sul disco | Nessun requisito minimo. Si noti che poiché tutte le build verranno archiviate sulle macchine Jenkins, è necessario assicurarsi che sia disponibile spazio su disco sufficiente per l'archiviazione delle build. |
Versione del sistema operativo | Jenkins può essere installato su Windows, Ubuntu / Debian, Red Hat / Fedora / CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo. |
Contenitore Java | Il file WAR può essere eseguito in qualsiasi contenitore che supporti Servlet 2.4 / JSP 2.0 o successivo (un esempio è Tomcat 5). |
Scarica Jenkins
Il sito ufficiale di Jenkins è Jenkins . Se si fa clic sul collegamento fornito, è possibile visualizzare la home page del sito Web ufficiale di Jenkins come mostrato di seguito.
Per impostazione predefinita, l'ultima versione e la versione del supporto a lungo termine saranno disponibili per il download. Le versioni precedenti sono disponibili anche per il download. Fare clic sulla scheda Rilascio del supporto a lungo termine nella sezione di download.
Fare clic sul collegamento "Versione precedente ma stabile" per scaricare il file di guerra Jenkins.
Avvio di Jenkins
Apri il prompt dei comandi. Dal prompt dei comandi, accedere alla directory in cui è presente il file jenkins.war. Esegui il seguente comando
D:\>Java –jar Jenkins.war
Dopo aver eseguito il comando, verranno eseguite varie attività, una delle quali è l'estrazione del file war che viene eseguita da un server web incorporato chiamato winstone.
D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/ .jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
Una volta completata l'elaborazione senza errori gravi, la riga seguente verrà visualizzata nell'output del prompt dei comandi.
INFO: Jenkins is fully up and running
Accesso a Jenkins
Una volta che Jenkins è attivo e funzionante, è possibile accedere a Jenkins dal collegamento: http://localhost:8080
Questo collegamento farà apparire la dashboard di Jenkins.
I seguenti prerequisiti devono essere soddisfatti per l'installazione di Jenkins Tomcat.
Passaggio 1: verifica dell'installazione di Java
Per verificare l'installazione di Java, aprire la console ed eseguire il seguente comando java.
OS | Compito | Comando |
---|---|---|
finestre | Apri la console dei comandi | \> java –version |
Linux | Apri il terminale di comando | $ java –version |
Se Java è stato installato correttamente sul tuo sistema, dovresti ottenere uno dei seguenti output, a seconda della piattaforma su cui stai lavorando.
OS | Produzione |
---|---|
finestre |
Versione Java "1.7.0_60" Java (TM) SE Run Time Environment (build 1.7.0_60-b19) VM server Java Hotspot (TM) a 64 bit (build 24.60-b09, modalità mista) |
Linux |
versione java "1.7.0_25" Aprire JDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64) Apri la VM server JDK a 64 bit (build 23.7-b01, modalità mista) |
Si presume che i lettori di questo tutorial abbiano Java 1.7.0_60 installato sul proprio sistema prima di procedere con questo tutorial.
Nel caso in cui non si disponga di Java JDK, è possibile scaricarlo dal collegamento Oracle
Passaggio 2: verifica dell'installazione di Java
Impostare la variabile di ambiente JAVA_HOME in modo che punti all'ubicazione della directory di base in cui Java è installato sulla macchina. Per esempio,
OS | Produzione |
---|---|
finestre | Imposta la variabile ambientale JAVA_HOME su C: \ ProgramFiles \ java \ jdk1.7.0_60 |
Linux | export JAVA_HOME = / usr / local / java-current |
Aggiungi il percorso completo della posizione del compilatore Java al percorso di sistema.
OS | Produzione |
---|---|
finestre | Aggiungi la stringa; C: \ Program Files \ Java \ jdk1.7.0_60 \ bin alla fine della variabile di sistema PATH. |
Linux | export PATH = $ PATH: $ JAVA_HOME / bin / |
Verificare il comando java-version dal prompt dei comandi come spiegato sopra.
Passaggio 3: scarica Tomcat
Il sito web ufficiale di Tomcat è Tomcat . Se fai clic sul collegamento fornito, puoi ottenere la home page del sito Web ufficiale di Tomcat come mostrato di seguito.
Vai al collegamento https://tomcat.apache.org/download-70.cgi per ottenere il download per tomcat.
Vai alla sezione "Distribuzioni binarie". Scarica il file zip di Windows a 32 bit.
Quindi decomprimere il contenuto del file zip scaricato.
Passaggio 4: installazione di Jenkins e Tomcat
Copia il file Jenkis.war che è stato scaricato dalla sezione precedente e copialo nella cartella webapps nella cartella tomcat.
Ora apri il prompt dei comandi. Dal prompt dei comandi, accedere alla directory in cui si trova la cartella tomcat7. Individua la directory bin in questa cartella ed esegui il file start.bat
E:\Apps\tomcat7\bin>startup.bat
Una volta completata l'elaborazione senza errori gravi, la riga seguente verrà visualizzata nell'output del prompt dei comandi.
INFO: Server startup in 1302 ms
Apri il browser e vai al collegamento - http://localhost:8080/jenkins. Jenkins sarà attivo e funzionante su Tomcat.
Per questo esercizio, è necessario assicurarsi che la connettività Internet sia presente dalla macchina su cui è installato Jenkins. Nella dashboard di Jenkins (schermata iniziale), fai clic sull'opzione Gestisci Jenkins sul lato sinistro.
Nella schermata successiva, fai clic sull'opzione "Gestisci plug-in".
Nella schermata successiva, fare clic sulla scheda Disponibile. Questa scheda fornirà un elenco di plugin disponibili per il download. Nella scheda "Filtro" digitare "Plugin Git"
L'elenco verrà quindi filtrato. Seleziona l'opzione Git Plugin e fai clic sul pulsante "Installa senza riavvio"
Verrà quindi avviata l'installazione e la schermata verrà aggiornata per mostrare lo stato del download.
Una volta completate tutte le installazioni, riavvia Jenkins immettendo il seguente comando nel browser. http://localhost:8080/jenkins/restart
Dopo il riavvio di Jenkins, Git sarà disponibile come opzione durante la configurazione dei lavori. Per verificare, fare clic su Nuovo elemento nelle opzioni di menu per Jenkins. Quindi immettere un nome per un lavoro, nel caso seguente, il nome inserito è "Demo". Seleziona "Progetto Freestyle" come tipo di elemento. Fare clic sul pulsante Ok.
Nella schermata successiva, se navighi nella sezione Gestione del codice sorgente, ora vedrai "Git" come opzione.
Passaggio 1: download e configurazione di Maven
Il sito web ufficiale di Maven è Apache Maven . Se si fa clic sul collegamento fornito, è possibile visualizzare la home page del sito Web ufficiale di Maven come mostrato di seguito.
Durante la navigazione nel sito, vai alla sezione File e scarica il collegamento al file Binary.zip.
Una volta scaricato il file, estrai i file nella cartella dell'applicazione pertinente. A tale scopo, i file maven verranno inseriti in E: \ Apps \ apache-maven-3.3.3.
Passaggio 2: configurazione di Jenkins e Maven
Nella dashboard di Jenkins (schermata Home), fai clic su Gestisci Jenkins dal menu a sinistra.
Quindi, fare clic su "Configura sistema" dal lato destro.
Nella schermata Configura sistema, scorri verso il basso fino a visualizzare la sezione Maven, quindi fai clic sul pulsante "Aggiungi Maven".
Deseleziona l'opzione "Installa automaticamente".
Aggiungi un nome per l'impostazione e la posizione di MAVEN_HOME.
Quindi, fai clic sul pulsante "Salva" alla fine dello schermo.
Ora puoi creare un lavoro con l'opzione "Progetto Maven". Nella dashboard di Jenkins, fai clic sull'opzione Nuovo elemento.
Probabilmente avresti visto un paio di volte negli esercizi precedenti in cui dovevamo configurare le opzioni all'interno di Jenkins. Di seguito vengono mostrate le varie opzioni di configurazione in Jenkins.
Quindi si possono ottenere le varie opzioni di configurazione per Jenkins facendo clic sull'opzione "Gestisci Jenkins" dal lato sinistro del menu.
Ti verrà quindi presentata la seguente schermata:
Fare clic su Configura sistema. Di seguito sono descritte alcune delle impostazioni di configurazione di Jenkins che possono essere eseguite.
Home directory di Jenkins
Jenkins necessita di spazio su disco per eseguire build e conservare gli archivi. Si può controllare questa posizione dalla schermata di configurazione di Jenkins. Per impostazione predefinita, questo è impostato su ~ / .jenkins e questa posizione verrà inizialmente memorizzata nella posizione del profilo utente. In un ambiente appropriato, è necessario modificare questa posizione in una posizione adeguata per archiviare tutte le build e gli archivi pertinenti. Una volta può farlo nei seguenti modi
Impostare la variabile di ambiente "JENKINS_HOME" sulla nuova directory home prima di avviare il contenitore servlet.
Impostare la proprietà di sistema "JENKINS_HOME" sul contenitore servlet.
Impostare la voce dell'ambiente JNDI "JENKINS_HOME" sulla nuova directory.
Il seguente esempio utilizzerà la prima opzione di impostazione della variabile di ambiente "JENKINS_HOME".
Per prima cosa crea una nuova cartella E: \ Apps \ Jenkins. Copia tutti i contenuti dall'attuale ~ / .jenkins in questa nuova directory.
Impostare la variabile d'ambiente JENKINS_HOME in modo che punti all'ubicazione della directory di base in cui Java è installato sulla macchina. Per esempio,
OS | Produzione |
---|---|
finestre | Imposta la variabile ambientale JENKINS_HOME nella posizione che desideri. Ad esempio, puoi impostarlo su E: \ Apps \ Jenkins |
Linux | esportare JENKINS_HOME = / usr / local / Jenkins o la posizione desiderata. |
Nella dashboard di Jenkins, fai clic su Gestisci Jenkins dal menu a sinistra. Quindi fare clic su "Configura sistema" sul lato destro.
Nella directory Home, vedrai ora la nuova directory che è stata configurata.
# di esecutori
Si riferisce al numero totale di esecuzioni di lavoro simultanee che possono aver luogo sulla macchina Jenkins. Questo può essere modificato in base ai requisiti. A volte la raccomandazione è di mantenere questo numero uguale al numero di CPU sulle macchine per prestazioni migliori.
variabili ambientali
Viene utilizzato per aggiungere variabili di ambiente personalizzate che verranno applicate a tutti i lavori. Queste sono coppie chiave-valore e possono essere consultate e utilizzate nelle build laddove richiesto.
URL di Jenkins
Per impostazione predefinita, l'URL di Jenkins punta a localhost. Se hai una configurazione del nome di dominio per la tua macchina, impostala sul nome di dominio altrimenti sovrascrivi localhost con l'IP della macchina. Ciò aiuterà nella configurazione degli slave e durante l'invio di collegamenti utilizzando l'email poiché è possibile accedere direttamente all'URL di Jenkins utilizzando la variabile d'ambiente JENKINS_URL a cui si può accedere come $ {JENKINS_URL}.
notifica per email
Nell'area di notifica e-mail, è possibile configurare le impostazioni SMTP per l'invio di e-mail. Ciò è necessario per Jenkins per connettersi al server di posta SMTP e inviare messaggi di posta elettronica all'elenco dei destinatari.
Per gestire Jenkins, fai clic sull'opzione "Gestisci Jenkins" dal lato sinistro del menu.
Quindi si possono ottenere le varie opzioni di configurazione per Jenkins facendo clic sull'opzione "Gestisci Jenkins" dal lato sinistro del menu.
Ti verrà quindi presentata la seguente schermata:
Alcune delle opzioni di gestione sono le seguenti:
Configura sistema
È qui che è possibile gestire i percorsi dei vari strumenti da utilizzare nelle build, come i JDK, le versioni di Ant e Maven, nonché le opzioni di sicurezza, i server di posta elettronica e altri dettagli di configurazione a livello di sistema. Quando vengono installati i plugin. Jenkins aggiungerà dinamicamente i campi di configurazione richiesti dopo l'installazione dei plugin.
Ricarica la configurazione da disco
Jenkins memorizza tutto il suo sistema e crea i dettagli di configurazione del lavoro come file XML che vengono memorizzati nella directory home di Jenkins. Anche qui viene memorizzata tutta la cronologia delle build. Se si stanno migrando lavori di compilazione da un'istanza di Jenkins a un'altra, o archiviando vecchi lavori di compilazione, sarà necessario aggiungere o rimuovere le directory dei lavori di compilazione corrispondenti nella directory di compilazione di Jenkins. Non è necessario portare Jenkins offline per eseguire questa operazione: è sufficiente utilizzare l'opzione "Ricarica configurazione da disco" per ricaricare il sistema Jenkins e creare direttamente le configurazioni dei lavori.
Gestisci plugin
Qui è possibile installare un'ampia varietà di plug-in di terze parti direttamente da diversi strumenti di gestione del codice sorgente come Git, Mercurial o ClearCase, alla qualità del codice e ai rapporti sulle metriche di copertura del codice. I plugin possono essere installati, aggiornati e rimossi tramite la schermata Gestisci plugin.
Informazioni di sistema
Questa schermata visualizza un elenco di tutte le proprietà di sistema Java correnti e le variabili di ambiente di sistema. Qui è possibile controllare esattamente quale versione di Java Jenkins è in esecuzione, con quale utente è in esecuzione e così via.
Lo screenshot seguente mostra alcune delle informazioni nome-valore disponibili in questa sezione.
Registro di sistema
La schermata Registro di sistema è un modo conveniente per visualizzare i file di registro di Jenkins in tempo reale. Anche in questo caso, l'uso principale di questa schermata è per la risoluzione dei problemi.
Carica statistiche
Questa pagina mostra i dati grafici su quanto è impegnata l'istanza di Jenkins in termini di numero di build simultanee e la lunghezza della coda di build che dà un'idea di quanto tempo le tue build devono aspettare prima di essere eseguite. Queste statistiche possono dare una buona idea se è necessaria una capacità aggiuntiva o nodi di build aggiuntivi dal punto di vista dell'infrastruttura.
Script Console
Questa schermata ti consente di eseguire gli script Groovy sul server. È utile per la risoluzione dei problemi avanzata poiché richiede una profonda conoscenza dell'architettura interna di Jenkins.
Gestisci i nodi
Jenkins è in grado di gestire build parallele e distribuite. In questa schermata, puoi configurare quante build desideri. Jenkins viene eseguito contemporaneamente e, se si utilizzano build distribuite, configurare i nodi di compilazione. Un nodo di compilazione è un'altra macchina che Jenkins può utilizzare per eseguire le sue compilazioni.
Prepararsi all'arresto
Se è necessario chiudere Jenkins o il server su cui è in esecuzione Jenkins, è meglio non farlo durante l'esecuzione di una build. Per arrestare Jenkins in modo pulito, puoi utilizzare il collegamento Prepare for Shutdown, che impedisce l'avvio di nuove build. Alla fine, quando tutte le build attuali saranno terminate, una sarà in grado di chiudere Jenkins in modo pulito.
Per questo esercizio, creeremo un lavoro in Jenkins che preleva una semplice applicazione HelloWorld, compila ed esegue il programma java.
Step 1 - Vai alla dashboard di Jenkins e fai clic su Nuovo elemento
Step 2- Nella schermata successiva, inserisci il nome dell'oggetto, in questo caso l'abbiamo chiamato Helloworld. Scegli l'opzione "Progetto Freestyle"
Step 3 - Verrà visualizzata la seguente schermata in cui è possibile specificare i dettagli del lavoro.
Step 4- Dobbiamo specificare la posizione dei file che devono essere creati. In questo esempio, supporremo che sia stato configurato un repository git locale (E: \ Program) che contiene un file "HelloWorld.java". Quindi scorri verso il basso e fai clic sull'opzione Git e inserisci l'URL del repository git locale.
Note- Se il tuo repository è ospitato su Github, puoi anche inserire qui l'URL di quel repository. Oltre a questo, è necessario fare clic sul pulsante Aggiungi per le credenziali per aggiungere un nome utente e una password al repository github in modo che il codice possa essere prelevato dal repository remoto.
Step 5 - Ora vai alla sezione Build e fai clic sul passaggio Aggiungi build → Esegui comando batch di Windows
Step 6 - Nella finestra dei comandi, inserisci i seguenti comandi e poi clicca sul pulsante Salva.
Javac HelloWorld.java
Java HelloWorld
Step 7 - Una volta salvato, puoi fare clic sull'opzione Crea ora per vedere se hai definito correttamente il lavoro.
Step 8- Una volta pianificata la compilazione, verrà eseguita. La seguente sezione della cronologia della build mostra che è in corso una build.
Step 9- Una volta completata la build, uno stato della build mostrerà se la build ha avuto successo o meno. Nel nostro caso, la seguente build è stata eseguita con successo. Fare clic sul numero 1 nella cronologia build per visualizzare i dettagli della build.
Step 10 - Fare clic sul collegamento Output della console per visualizzare i dettagli della build
A parte i passaggi mostrati sopra, ci sono tanti modi per creare un lavoro di costruzione, le opzioni disponibili sono molte, il che rende Jenkins un fantastico strumento di distribuzione continua.
Jenkins fornisce una funzionalità predefinita per Junit e fornisce una serie di plugin per unit test per altre tecnologie, un esempio è MSTest per .Net unit test. Se vai al linkhttps://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin fornirà l'elenco dei plug-in di Unit Testing disponibili.
Esempio di un test Junit a Jenkins
Il seguente esempio prenderà in considerazione
- Una semplice classe HelloWorldTest basata su Junit.
- Ant come strumento di costruzione all'interno di Jenkins per costruire la classe di conseguenza.
Step 1 - Vai alla dashboard di Jenkins e fai clic sul progetto HelloWorld esistente e scegli l'opzione Configura
Step 2 - Vai alla sezione per aggiungere un passaggio di build e scegli l'opzione per invocare Ant.
Step 3 - Fare clic sul pulsante Avanzate.
Step 4 - Nella sezione del file di build, inserisci il percorso del file build.xml.
Step 5 - Quindi fai clic sull'opzione per aggiungere l'opzione post-build e scegli l'opzione "Pubblica rapporto sui risultati del test Junit"
Step 6- Negli XML dei rapporti di prova, inserisci la posizione come mostrato di seguito. Assicurati che Reports sia una cartella creata nell'area di lavoro del progetto HelloWorld. Il "* .xml" dice fondamentalmente a Jenkins di raccogliere i file xml dei risultati prodotti dall'esecuzione dei casi di test Junit. Questi file xml che poi possono essere convertiti in report che possono essere visualizzati in seguito.
Al termine, fai clic sull'opzione Salva alla fine.
Step 7 - Una volta salvato, puoi fare clic sull'opzione Build Now.
Una volta completata la build, uno stato della build mostrerà se la build ha avuto successo o meno. Nelle informazioni sull'output di build, ora noterai una sezione aggiuntiva chiamata Test Result. Nel nostro caso, abbiamo inserito un test case negativo in modo che il risultato fallisse solo come esempio.
Si può andare all'output della console per vedere ulteriori informazioni. Ma la cosa più interessante è che se fai clic su Risultato del test, ora vedrai un'analisi dettagliata dei risultati del test.
Uno dei principi di base dell'integrazione continua è che una build dovrebbe essere verificabile. Devi essere in grado di determinare oggettivamente se una determinata build è pronta per passare alla fase successiva del processo di compilazione e il modo più conveniente per farlo è usare test automatizzati. Senza un adeguato test automatizzato, ti ritrovi a dover conservare molti artefatti di costruzione e testarli a mano, il che non è certo nello spirito dell'integrazione continua. Il seguente esempio mostra come utilizzare Selenium per eseguire test web automatizzati.
Step 1 - Vai a Gestisci plugin.
Step 2- Trova il plug-in Hudson Selenium e scegli di installarlo. Riavvia l'istanza di Jenkins.
Step 3 - Vai a Configura sistema.
Step 4 - Configura il vaso del server selenio e fai clic sul pulsante Salva.
Note- Il file jar selenio può essere scaricato dalla posizione SeleniumHQ
Fare clic sul download per il server autonomo Selenium.
Step 5 - Torna alla dashboard e fai clic sull'opzione Configura per il progetto HelloWorld.
Step 6 - Fare clic su Add build step e scegliere l'opzione di "SeleniumHQ htmlSuite Run"
Step 7- Aggiungere i dettagli necessari per il test del selenio. Qui la suiteFile è la TestSuite generata utilizzando l'IDE Selenium. Fare clic su Salva ed eseguire una build. Ora il post build avvierà il driver selenium ed eseguirà il test html.
Jenkins viene fornito con una funzionalità predefinita per aggiungere una notifica e-mail per un progetto di compilazione.
Step 1- Configurazione di un server SMTP. Vai a Gestisci Jenkins → Configura sistema. Vai alla sezione Notifica e-mail e inserisci il server SMTP richiesto e i dettagli del suffisso e-mail dell'utente.
Step 2- Configurare i destinatari nel progetto Jenkins - Quando si configura un progetto di compilazione Jenkins, alla fine c'è la possibilità di aggiungere destinatari che riceverebbero notifiche e-mail per build instabili o non funzionanti. Quindi fare clic sul pulsante Salva.
Oltre all'impostazione predefinita, sul mercato sono disponibili anche plug-in di notifica. Un esempio è il plug-in di notifica di Tikal Knowledge che consente di inviare notifiche sullo stato del lavoro nei formati JSON e XML. Questo plug-in consente di configurare gli endpoint come mostrato di seguito.
Ecco i dettagli di ciascuna opzione:
"Format" - Questo è il formato del payload di notifica che può essere JSON o XML.
"Protocol" - protocollo da utilizzare per inviare messaggi di notifica, HTTP, TCP o UDP.
"Event" - Gli eventi di lavoro che attivano le notifiche: Lavoro avviato, Lavoro completato, Lavoro finalizzato o Tutti gli eventi (opzione predefinita).
"URL"- URL a cui inviare notifiche. Ha la forma di "http://host"per il protocollo HTTP e
"host:port"
per i protocolli TCP e UDP."Timeout" - Timeout in millisecondi per l'invio della richiesta di notifica, 30 secondi per impostazione predefinita.
Come dimostrato nella sezione precedente, sono disponibili molti plug-in di reporting, il più semplice dei quali sono i report disponibili per i test jUnit.
Nell'azione Post-build per qualsiasi lavoro, è possibile definire i report da creare. Al termine delle compilazioni, l'opzione Risultati del test sarà disponibile per ulteriori approfondimenti.
Jenkins ha una serie di plugin per l'analisi del codice. I vari plugin possono essere trovati suhttps://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins
Questo plugin fornisce utilità per i plugin di analisi del codice statico. Jenkins può analizzare il file dei risultati da vari strumenti di analisi del codice come CheckStyle, FindBugs, PMD ecc. Per ogni strumento di analisi del codice corrispondente, è necessario installare un plug-in in Jenkins.
Inoltre è disponibile il plug-in aggiuntivo Static Analysis Collector che combina i risultati individuali di questi plug-in in un unico grafico di tendenza e visualizzazione.
I plugin possono fornire informazioni come
- Il numero totale di avvisi in un lavoro
- Una visualizzazione degli avvisi nuovi e corretti di una build
- Rapporti sulle tendenze che mostrano il numero di avvisi per build
- Panoramica degli avvisi trovati per modulo, pacchetto, categoria o tipo
- Rapporti dettagliati degli avvisi trovati filtrati opzionalmente per gravità (o nuovi e corretti)
A volte sono necessarie molte macchine di compilazione se ci sono casi in cui ci sono progetti più grandi e più pesanti che vengono costruiti su base regolare. E l'esecuzione di tutte queste build su una macchina centrale potrebbe non essere l'opzione migliore. In tale scenario, è possibile configurare altre macchine Jenkins come macchine slave per scaricare il carico dal server Jenkins principale.
A volte potresti anche aver bisogno di diversi ambienti per testare le tue build. In questo caso l'utilizzo di uno slave per rappresentare ciascuno degli ambienti richiesti è quasi un must.
Uno slave è un computer configurato per scaricare i progetti di compilazione dal master e una volta impostato questa distribuzione delle attività è abbastanza automatica. L'esatto comportamento della delega dipende dalla configurazione di ogni progetto; alcuni progetti possono scegliere di "attaccarsi" a una macchina particolare per una build, mentre altri possono scegliere di vagare liberamente tra gli schiavi.
Poiché ogni slave esegue un programma separato chiamato "slave agent", non è necessario installare l'intero Jenkins (pacchetto o binari compilati) su uno slave. Esistono vari modi per avviare gli agenti slave, ma alla fine l'agente slave e il master Jenkins devono stabilire un collegamento di comunicazione bidirezionale (ad esempio un socket TCP / IP.) Per funzionare.
Per impostare slave / nodi in Jenkins seguire i passaggi indicati di seguito.
Step 1 - Vai alla sezione Gestisci Jenkins e scorri verso il basso fino alla sezione Gestisci nodi.
Step 2 - Fare clic su Nuovo nodo
Step 3 - Dai un nome al nodo, scegli l'opzione Dumb slave e fai clic su Ok.
Step 4- Immettere i dettagli della macchina slave del nodo. Nell'esempio seguente, stiamo considerando la macchina slave come una macchina Windows, quindi l'opzione "Consenti a Jenkins di controllare questo slave Windows come servizio Windows" è stata scelta come metodo di avvio. Abbiamo anche bisogno di aggiungere i dettagli necessari del nodo slave come il nome del nodo e le credenziali di accesso per la macchina del nodo. Fare clic sul pulsante Salva. Le etichette per cui il nome è stato immesso come "New_Slave" è ciò che può essere utilizzato per configurare i lavori per utilizzare questa macchina slave.
Una volta completati i passaggi precedenti, la nuova macchina del nodo sarà inizialmente in uno stato offline, ma tornerà online se tutte le impostazioni nella schermata precedente sono state inserite correttamente. È possibile in qualsiasi momento rendere offline la macchina slave del nodo, se necessario.
Sono disponibili molti plug-in che possono essere utilizzati per trasferire i file di build dopo una build riuscita alla rispettiva applicazione / server web. Ad esempio è il "Deploy to container Plugin". Per utilizzare questo, seguire i passaggi indicati di seguito.
Step 1- Vai a Gestisci Jenkins → Gestisci plugin. Vai alla sezione Disponibile e trova il plug-in "Deploy to container Plugin" e installa il plug-in. Riavvia il server Jenkins.
Questo plugin prende un file war / ear e lo distribuisce su un server di applicazioni remoto in esecuzione alla fine di una build.
Tomcat 4.x / 5.x / 6.x / 7.x
JBoss 3.x / 4.x
Glassfish 2.x / 3.x
Step 2- Vai al tuo progetto Build e fai clic sull'opzione Configura. Scegli l'opzione "Distribuisci guerra / orecchio in un contenitore"
Step 3- Nella sezione Distribuisci war / ear in un contenitore, inserisci i dettagli richiesti del server su cui devono essere distribuiti i file e fai clic sul pulsante Salva. Questi passaggi assicureranno ora che i file necessari vengano distribuiti nel contenitore necessario dopo una compilazione corretta.
Ci sono vari plugin disponibili in Jenkins per mostrare le metriche per le build che vengono eseguite in un periodo di tempo. Queste metriche sono utili per comprendere le tue build e la frequenza con cui falliscono / passano nel tempo. Ad esempio, diamo un'occhiata al "Plugin Build History Metrics".
Questo plugin calcola le seguenti metriche per tutte le build una volta installate
- Mean Time To Failure (MTTF)
- Tempo medio di recupero (MTTR)
- Deviazione standard dei tempi di costruzione
Step 1 - Vai alla dashboard di Jenkins e fai clic su Gestisci Jenkins
Step 2 - Vai all'opzione Gestisci plugin.
Step 3 - Vai alla scheda Disponibile e cerca il plug-in "Build History Metrics plug-in" e scegli di "installa senza riavvio".
Step 4- Viene visualizzata la seguente schermata per confermare la corretta installazione del plugin. Riavvia l'istanza di Jenkins.
Quando vai alla pagina del tuo lavoro, vedrai una tabella con le metriche calcolate. Le metriche vengono visualizzate per gli ultimi 7 giorni, per gli ultimi 30 giorni e per tutto il tempo.
Per vedere le tendenze generali in Jenkins, sono disponibili plug-in per raccogliere informazioni dall'interno delle build e Jenkins e visualizzarle in un formato grafico. Un esempio di tale plug-in è il "plug-in di statistiche di compilazione globale di Hudson". Quindi esaminiamo i passaggi per questo.
Step 1 - Vai alla dashboard di Jenkins e fai clic su Gestisci Jenkins
Step 2 - Vai all'opzione Gestisci plugin
Step 3 - Vai alla scheda Disponibile e cerca il plug-in "Hudson global-build-stats plug-in" e scegli di "installa senza riavvio".
Step 4- Viene visualizzata la seguente schermata per confermare la corretta installazione del plugin. Riavvia l'istanza di Jenkins.
Per visualizzare le statistiche globali, seguire i passaggi da 5 a 8.
Step 5- Vai alla dashboard di Jenkins e fai clic su Gestisci Jenkins. Nella schermata Gestisci Jenkins, scorri verso il basso e ora vedrai un'opzione chiamata "Statistiche di costruzione globali". Fare clic su questo collegamento.
Step 6- Fare clic sul pulsante "Inizializza statistiche". Ciò che fa è che raccoglie tutti i record esistenti per le build che sono già state eseguite e i grafici possono essere creati sulla base di questi risultati.
Step 7- Una volta che i dati sono stati inizializzati, è il momento di creare un nuovo grafico. Fare clic sul collegamento "Crea nuovo grafico".
Step 8- Apparirà un pop-up per inserire le informazioni rilevanti per i nuovi dettagli del grafico. Immettere le seguenti informazioni obbligatorie
- Titolo: qualsiasi informazione sul titolo, per questo esempio viene fornita come "Demo"
- Larghezza grafico - 800
- Altezza della carta: 600
- Scala temporale del grafico: giornaliera
- Durata del grafico: 30 giorni
Il resto delle informazioni può rimanere così com'è. Una volta inserite le informazioni, fare clic su Crea nuovo grafico.
Ora vedrai il grafico che mostra le tendenze delle build nel tempo.
Se fai clic su qualsiasi sezione all'interno del grafico, otterrai un'analisi dettagliata dei dettagli del lavoro e delle loro build.
Le seguenti sono alcune delle attività di base che svolgerete, alcune delle quali sono le migliori pratiche per la manutenzione del server Jenkins
Opzioni URL
I seguenti comandi, quando aggiunti all'URL dell'istanza Jenkins, eseguiranno le azioni pertinenti sull'istanza Jenkins.
http://localhost:8080/jenkins/exit - arresto jenkins
http://localhost:8080/jenkins/restart - riavvia jenkins
http://localhost:8080/jenkins/reload - per ricaricare la configurazione
Backup di Jenkins Home
La directory home di Jenkins non è altro che la posizione sul disco rigido in cui Jenkins memorizza tutte le informazioni per i lavori, le build, ecc. La posizione della directory home può essere visualizzata quando si fa clic su Gestisci Jenkins → Configura sistema.
Configura Jenkins sulla partizione che ha lo spazio su disco più libero - Poiché Jenkins prenderebbe il codice sorgente per i vari lavori definiti e farebbe build continue, assicurati sempre che Jenkins sia configurato su un'unità con spazio sufficiente sul disco rigido. Se lo spazio sul disco rigido si esaurisce, tutte le build sull'istanza di Jenkins inizieranno a fallire.
Un'altra best practice è scrivere cron job o attività di manutenzione in grado di eseguire operazioni di pulizia per evitare che il disco in cui è stato configurato Jenkins si riempia.
Jenkins fornisce un buon supporto per fornire distribuzione e consegna continue. Se osservi il flusso di qualsiasi sviluppo software attraverso la distribuzione, sarà come mostrato di seguito.
La parte principale della distribuzione continua è garantire che l'intero processo mostrato sopra sia automatizzato. Jenkins ottiene tutto questo tramite vari plugin, uno dei quali è il "Deploy to container Plugin" che è stato visto nelle lezioni precedenti.
Sono disponibili plug-in che possono effettivamente fornire una rappresentazione grafica del processo di distribuzione continua. Ma prima creiamo un altro progetto in Jenkins, così possiamo vedere meglio come funziona.
Creiamo un semplice progetto che emuli la fase di QA e faccia un test dell'applicazione Helloworld.
Step 1- Vai alla dashboard di Jenkins e fai clic su Nuovo elemento. Scegli un "progetto Freestyle" e inserisci il nome del progetto come "QA". Fare clic sul pulsante Ok per creare il progetto.
Step 2 - In questo esempio, lo manteniamo semplice e utilizziamo questo progetto per eseguire un programma di test per l'applicazione Helloworld.
Quindi il nostro progetto QA è ora impostato. Puoi fare una build per vedere se si sviluppa correttamente.
Step 3 - Ora vai al tuo progetto Helloworld e fai clic sull'opzione Configura
Step 4 - Nella configurazione del progetto, scegli "Aggiungi azione post-compilazione" e scegli "Crea altri progetti"
Step 5- Nella sezione "Progetto da costruire", inserisci QA come nome del progetto da costruire. Puoi lasciare l'opzione predefinita di "Trigger solo se la build è stabile". Fare clic sul pulsante Salva.
Step 6- Costruisci il progetto Helloworld. Ora, se vedi l'output della Console, vedrai anche che dopo che il progetto Helloworld è stato creato con successo, verrà eseguita anche la compilazione del progetto QA.
Step 7- Ora installa il plug-in della pipeline di consegna. Vai a Gestisci Jenkins → Gestisci plug-in. Nella scheda disponibile, cerca "Delivery Pipeline Plugin". Fare clic su Installa senza riavviare. Al termine, riavvia l'istanza di Jenkins.
Step 8 - Per vedere la pipeline di consegna in azione, nella dashboard di Jenkins, fai clic sul simbolo + nella scheda accanto alla scheda "Tutto".
Step 9 - Immettere un nome qualsiasi per il nome della vista e scegliere l'opzione "Visualizzazione pipeline di consegna".
Step 10- Nella schermata successiva, puoi lasciare le opzioni predefinite. È possibile modificare le seguenti impostazioni:
- Assicurati che l'opzione "Mostra risultati dell'analisi statica" sia selezionata.
- Assicurati che l'opzione "Mostra tempo totale di compilazione" sia selezionata.
- Per il lavoro iniziale: inserisci il progetto Helloworld come primo lavoro che dovrebbe essere costruito.
- Immettere un nome per la pipeline
- Fare clic sul pulsante OK.
Ora vedrai un'ottima vista dell'intera pipeline di consegna e sarai in grado di vedere lo stato di ogni progetto nell'intera pipeline.
Un altro famoso plugin è il build pipeline plugin. Diamo un'occhiata a questo.
Step 1- Vai a Gestisci Jenkins → Gestisci plug-in. Nella scheda disponibile, cerca "Build Pipeline Plugin". Fare clic su Installa senza riavviare. Al termine, riavvia l'istanza di Jenkins.
Step 2 - Per vedere la pipeline di build in azione, nella dashboard di Jenkins, fai clic sul simbolo + nella scheda accanto alla scheda "Tutto".
Step 3 - Immettere un nome qualsiasi per il nome della vista e scegliere l'opzione "Crea vista pipeline".
Step 4- Accetta le impostazioni di default, solo nel lavoro Selected Initial, assicurati di inserire il nome del progetto Helloworld. Fare clic sul pulsante Ok.
Ora vedrai un'ottima vista dell'intera pipeline di consegna e sarai in grado di vedere lo stato di ogni progetto nell'intera pipeline.
Per ottenere l'elenco di tutti i plugin disponibili all'interno di Jenkins, si può visitare il collegamento - https://wiki.jenkins-ci.org/display/JENKINS/Plugins
Abbiamo già visto molte istanze per l'installazione di plugin, diamo un'occhiata ad alcune altre attività di manutenzione per quanto riguarda i plugin
Disinstallazione dei plugin
Per disinstallare un plugin, vai a Gestisci Jenkins → Gestisci plugin. Fare clic sulla scheda Installato. Alcuni plugin avranno l'opzione Disinstalla. È possibile fare clic su questi pulsanti per disinstallare i plug-in. Assicurati di riavviare l'istanza Jenkins dopo la disinstallazione.
Installazione di un'altra versione di un plugin
A volte potrebbe essere necessario installare una versione precedente di un plug-in, in tal caso è possibile scaricare il plug-in dalla relativa pagina del plug-in sul sito Web di Jenkins. È quindi possibile utilizzare il fileUpload opzione per caricare manualmente il plugin.
In Jenkins hai la possibilità di configurare gli utenti e le relative autorizzazioni sull'istanza di Jenkins. Per impostazione predefinita, non si desidera che tutti siano in grado di definire lavori o altre attività amministrative in Jenkins. Quindi Jenkins ha la capacità di disporre di una configurazione di sicurezza.
Per configurare la sicurezza in Jenkins, segui i passaggi indicati di seguito.
Step 1 - Fai clic su Gestisci Jenkins e scegli l'opzione "Configura sicurezza globale".
Step 2- Fare clic sull'opzione Abilita sicurezza. Ad esempio, supponiamo di volere che Jenkins mantenga il proprio database di utenti, quindi in Security Realm, scegli l'opzione "Jenkins 'own user database".
Per impostazione predefinita, desideri che un amministratore centrale definisca gli utenti nel sistema, quindi assicurati che l'opzione "Consenti agli utenti di registrarsi" non sia selezionata. Puoi lasciare il resto così com'è per ora e fare clic sul pulsante Salva.
Step 3- Ti verrà chiesto di aggiungere il tuo primo utente. Ad esempio, stiamo configurando un utente amministratore per il sistema.
Step 4- È ora il momento di configurare i tuoi utenti nel sistema. Ora quando vai su Gestisci Jenkins e scorri verso il basso, vedrai un'opzione "Gestisci utenti". Fare clic su questa opzione.
Step 5- Proprio come hai definito il tuo utente amministratore, inizia a creare altri utenti per il sistema. Ad esempio, stiamo solo creando un altro utente chiamato "utente".
Step 6- Ora è il momento di impostare le tue autorizzazioni, in pratica chi ha accesso a cosa. Vai a Gestisci Jenkins → Configura sicurezza globale.
Ora nella sezione Autorizzazione, fai clic su "Sicurezza basata su matrice"
Step 7- Se non vedi l'utente nell'elenco del gruppo di utenti, inserisci il nome utente e aggiungilo all'elenco. Quindi concedere le autorizzazioni appropriate all'utente.
Fare clic sul pulsante Salva dopo aver definito le autorizzazioni pertinenti.
La tua sicurezza Jenkins è ora configurata.
Note - Per l'autenticazione di Windows AD, è necessario aggiungere il plug-in Active Directory a Jenkins.
Jenkins ha un plug-in di backup che può essere utilizzato per eseguire il backup delle impostazioni di configurazione critiche relative a Jenkins. Seguire i passaggi indicati di seguito per avere un backup in atto.
Step 1 - Fai clic su Gestisci Jenkins e scegli l'opzione "Gestisci plug-in".
Step 2- Nella scheda disponibile, cerca "Plugin di backup". Fare clic su Installa senza riavviare. Al termine, riavvia l'istanza di Jenkins
Step 3- Ora quando vai su Gestisci Jenkins e scorri verso il basso vedrai "Gestione backup" come opzione. Fare clic su questa opzione.
Step 4 - Fare clic su Setup.
Step 5- Qui, il campo principale da definire è la directory per il backup. Assicurati che si trovi su un'altra unità diversa dall'unità in cui è stata configurata l'istanza di Jenkins. Fare clic sul pulsante Salva.
Step 6 - Fare clic su "Configurazione backup Hudson" dalla schermata Gestione backup per avviare il backup.
La schermata successiva mostrerà lo stato del backup
Per ripristinare da un backup, vai alla schermata Gestione backup, fai clic su Ripristina configurazione Hudson.
Verrà visualizzato l'elenco dei backup, fare clic su quello appropriato per fare clic su Avvia ripristino per avviare il ripristino del backup.
I test Web come i test del selenio possono essere eseguiti su macchine slave remote tramite l'installazione del plug-in master slave e selenium suite. I passaggi seguenti mostrano come eseguire test remoti utilizzando questa configurazione.
Step 1- Assicurati che la tua configurazione master slave sia a posto. Vai al tuo server Jenkins principale. Vai a Gestisci Jenkins → Gestisci nodi.
Nel nostro elenco di nodi, l'etichetta DXBMEM30 è la macchina slave. In questo esempio, sia la macchina master che quella slave sono macchine Windows.
Step 2 - Fare clic su configura per la macchina slave DXBMEM30.
Step 3 - Assicurati che il metodo di avvio sia impostato come "Avvia agenti slave tramite Java Web Start"
Step 4- Ora vai sulla tua macchina slave e da lì apri un'istanza del browser nella tua istanza master Jenkins. Quindi vai a Gestisci Jenkins → Gestisci nodi. Vai a DXBMEM30 e fai clic su
Step 5 - Fare clic sull'istanza DXBMEM30.
Step 6 - Scorri verso il basso e vedrai l'opzione Avvia che è l'opzione per avviare 'Java Web Start'
Step 7- Ti verrà presentato un avviso di sicurezza. Fare clic sulla casella di controllo Accettazione e fare clic su Esegui.
Ora vedrai una finestra Jenkins Slave aperta e ora connessa.
Step 8- Configurazione dei test per l'esecuzione sullo slave. Qui, devi assicurarti che il lavoro che viene creato sia pensato specificamente per eseguire solo i test del selenio.
Nella configurazione del lavoro, assicurarsi che l'opzione "Limita dove può essere eseguito questo progetto" sia selezionata e nell'espressione Etichetta inserire il nome del nodo slave.
Step 9- Assicurati che la parte selenio del tuo lavoro sia configurata. È necessario assicurarsi che il file Sample.html e il file selenium-server.jar siano presenti anche sulla macchina slave.
Dopo aver seguito tutti i passaggi precedenti e aver fatto clic su Build, questo progetto eseguirà il test Selenium sulla macchina slave come previsto.