Libreria condivisa Jenkins: uno sguardo più da vicino [2022]
Pubblicato: 2021-01-02Viviamo in un'era di microservizi in cui le applicazioni contemporanee vengono disassemblate in componenti che possono essere distribuiti individualmente . Possiamo affermare che Jenkins si è affermato tra i principali strumenti CI/CD originali per la distribuzione di microservizi. Rispetto alle applicazioni monolitiche, esistono molte pipeline per la distribuzione di singoli microservizi.
È possibile utilizzare il tubo come codice per codificare l'intero processo di CI/CD. Trattalo come nello sviluppo di app. Puoi pubblicare il codice della pipeline ed eseguire tutti i livelli di test prima di usarlo per distribuire l'app.
Sommario
Che cos'è la libreria condivisa Jenkins?
Quando diciamo CI/CD come simbolo, abbiamo bisogno di modularità e riutilizzo. Devi seguire il principio DRY. È qui che la libreria condivisa di Jenkins si rivela utile.
La libreria condivisa Jenkins nasce dall'idea di includere un codice pipe standard per i sistemi di controllo della versione e può essere utilizzata su qualsiasi numero di pipe semplicemente facendo riferimento ad esso. Più team possono utilizzare la stessa directory per la loro pipeline.
Puoi confrontarlo con le directory di programmazione popolari. La programmazione crea una guida separata che chiunque può utilizzare durante l'importazione del codice.
Ad esempio, se si dispone di dieci pipe per i microservizi da Java, la vecchia procedura di creazione viene ripetuta per tutte e dieci le pipe. Inoltre, il codice pipe viene copiato e incollato con l'aggiunta di nuovi servizi. Se si vogliono modificare alcuni parametri in una vecchia fase costruttiva, è necessario regolarli manualmente in tutte le tubazioni.

Nello stesso scenario, creerai una libreria condivisa per gli edifici più vecchi. Per tutti i tubi, tutto ciò che devi fare è fare riferimento alla vecchia libreria di codici edilizi. Se ci sono modifiche precedenti in futuro, tutto ciò che devi aggiornare è l'icona della libreria condivisa.
Leggi: Idee e argomenti interessanti del progetto Jenkins
Inizia a usare le librerie condivise
Una directory condivisa è una raccolta di file interessanti (DSL + Groovy). Tutti i file interessanti devono essere nel repository git. Questo esempio usa Github come repository git. https://github.com/devopscube/jenkins-shared-library. È possibile duplicare questo repository per ottenere l'infrastruttura della libreria condivisa.
Il database della libreria condivisa contiene le seguenti strutture di volumi:
La Biblioteca congiunta Jenkins
| ____ var
| ____ src
| ____ risorse
Var
Contiene tutto il codice WCL che puoi chiamare dalla pipeline. Contiene tutti i file di directory con estensione .groovy. I file .txt sono supportati anche per documentare il codice della libreria condiviso. Ad esempio, se hai un file con il nome maven-build. Groovy, riceverai un file di aiuto con il nome maven-groovy.txt. È possibile scrivere la documentazione della guida per contrassegnare le proprietà di una directory condivisa in questo file. I file della guida possono essere visualizzati dalla pagina <your-jenkins-url> / Pipeline Syntax / Global.
Src
È una directory di origine Java standard. Una volta che tutto il testo è stato compilato, verrà aggiunto al classpath. Qui puoi aggiungere un codice incredibilmente interessante per espandere il codice della libreria condivisa. Puoi anche utilizzare Import Manifest per importare le categorie e le estensioni Jenkins esistenti.
Ci sono scenari in cui l'hardware DSL fresco non è sufficientemente flessibile per eseguire determinate funzioni. In questo caso, puoi scrivere funzioni groove personalizzate in src e leggerle nel codice della libreria condivisa.

Risorse
Puoi gestire tutti i file non necessari necessari per il tubo in questa cartella. Ad esempio, potresti aver bisogno di un modello JSON generale per effettuare chiamate API durante la costruzione. Puoi salvare questo modello JSON in una cartella di risorse e chiamarlo in una libreria condivisa tramite la funzione LibraryResource.
Da leggere: Stipendio Jenkins in India
Libreria globale condivisa
Esistono diversi posti in cui è possibile impostare una directory condivisa, a seconda del caso di utilizzo. Jenkins Management »Configurazione del sistema» Global Pipe Library. Puoi configurare qualsiasi numero di directory di cui hai bisogno.
Queste librerie sono universalmente disponibili in modo che ogni pipeline nel tuo sistema possa utilizzare le funzioni implementate in queste librerie.
Queste librerie sono considerate "affidabili". Puoi eseguire qualsiasi metodo in Java, Groovy, l'API interna di Jenkins, l'estensione Jenkins o una directory di terze parti. Ti consente di identificare con precisione le librerie che ripiegano API non sicure in buste di alto livello che possono essere utilizzate in sicurezza da qualsiasi pipeline.
Si prega di notare che chiunque possa pagare la commissione a questo database SCM ha accesso illimitato a Jenkins. È necessaria l'autorizzazione Total / RunScripts per creare queste directory (questa autorizzazione viene generalmente concessa agli amministratori Jenkins).
Iscriviti ai corsi di ingegneria del software dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Libreria condivisa a livello di cartella
Tutte le cartelle create possono essere collegate a directory condivise. Questo meccanismo consente di impostare un intervallo di directory specifico per tutte le pipe all'interno di un volume o di una sottocartella.
Le directory basate su cartelle non sono considerate "attendibili". Funziona nella sandbox scanalata, proprio come una normale pipa.
Libreria condivisa automatica
Altri plugin possono aggiungere un modo per identificare la libreria in movimento. Ad esempio, "GitHub Organization Folder" è un plug-in di origine fornito in GitHub Branch Source. Fornisce un componente che consente agli script di utilizzare librerie non attendibili come github.com/orgname/reponame meno qualsiasi configurazione aggiunta. In questo caso, il repository GitHub specificato verrà caricato dal ramo principale utilizzando impostazioni anonime.
Per verificare le modifiche nella libreria
Se noti un bug in una build con una directory non attendibile, fai clic sul collegamento di riproduzione e modifica uno o più file di origine per vedere se la versione risultante funziona come previsto. Quando sei soddisfatto dei risultati, fai clic sul collegamento diff nella pagina Stato del rilascio e applica la differenza alla tua libreria e al tuo pool di commit.

(Anche se la versione richiesta della libreria è un ramo e non una versione statica come il segnalibro, la versione riattivata utilizzerà la stessa versione della versione originale. Non è possibile ritirare le risorse della libreria.)
Attualmente, non fornisce le librerie affidabili Replay. La modifica dei file di risorse durante la riproduzione non è attualmente supportata.
Leggi anche: Domande e risposte sull'intervista a Jenkins
Conclusione
Ecco alcune delle cose importanti da ricordare:
- Dovrai usare Groovy per scrivere passaggi o funzioni personalizzate.
- È necessario scrivere passaggi della pipeline che è possibile chiamare dalle pipeline.
- Devi creare un file nella directory vars del repository che conterrà il nome del tuo passaggio personalizzato.
- Il metodo def call dovrebbe essere implementato dai parametri del tuo passaggio.
- Se è necessario scrivere codice Groovy comune, è possibile aggiungerlo in src.
- Puoi anche integrare una libreria condivisa in Jenkins tramite l'uso di una schermata di configurazione del sistema.
Se sei interessato a saperne di più sullo sviluppo dello stack completo, dai un'occhiata al programma Executive PG di upGrad e IIIT-B in Sviluppo software full stack, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi , status di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
