Come installare Jenkins Automation Server su AlmaLinux 8
Jenkins è un server di automazione gratuito e open source scritto in Java. Può essere distribuito su un singolo server o come applicazione distribuita. È una delle soluzioni open source più popolari per l'integrazione continua e la fornitura continua di applicazioni software.
L'integrazione continua (CI) è una pratica di sviluppo software che richiede agli sviluppatori di integrare il proprio codice nel repository principale (di solito su base giornaliera) il prima e il più spesso possibile per rilevare errori di integrazione, creare nuove funzionalità e fornire feedback a tutti. fasi del ciclo di vita del software.
Una piattaforma come Jenkins è un framework CI che può essere utilizzato online o installato localmente sul tuo computer. Fornisce un'interfaccia facile da usare per collaborare con i membri del team su GitHub, Bitbucket o altri repository che utilizzano Git per creare pipeline di integrazione continua.
La distribuzione continua (CD) è una pratica di sviluppo software che consente rilasci piccoli e frequenti di applicazioni e servizi software. È più veloce dell'approccio tradizionale, che in genere prevede un unico rilascio di grandi dimensioni ogni sei mesi. La consegna continua può includere la distribuzione di nuovo codice ogni giorno, ogni ora o anche più volte all'ora. Gli intervalli di tempo più brevi consentono flessibilità nella risposta ai cambiamenti nei requisiti aziendali o nella tecnologia sottostante, riducendo al tempo stesso i costi e i rischi associati a lunghi periodi di tempo tra i rilasci.
Una piattaforma come Jenkins è un framework CD che coordina e gestisce i diversi passaggi necessari per produrre un sistema CD. Il ruolo di Jenkins non è solo quello di creare il codice, ma anche di testarlo e distribuirlo.
Un'architettura basata su plugin che consente di estendere le funzionalità di base di Jenkins con plugin autoprodotti, ad es. per la gestione del codice sorgente o altre attività. I plugin disponibili sono elencati nel Plugin Manager di Jenkins e possono essere installati semplicemente facendo clic su di essi.
Jenkins fornisce più di 300 plugin per supportare la creazione, la distribuzione e l'automazione di qualsiasi tipo di progetto da zero alla produzione, inclusi Java, Javascript, PHP, Ruby, Android e altri.
Dispone inoltre di una propria API REST, quindi puoi creare i tuoi strumenti personalizzati che si integrano con Jenkins senza dover sapere come programmare o nulla sugli interni dell'architettura Jenkins.
Sei un amministratore di sistema alla ricerca di una soluzione che ti aiuti a risparmiare tempo durante la distribuzione di piccole applicazioni sulle tue macchine. Dopo aver esaminato alcune opzioni, ti imbatti in Jenkins, che afferma di essere in grado di risolvere tutti i tuoi problemi. Ti immergi, leggi la documentazione e installi Jenkins. La documentazione ti guida attraverso il processo di installazione, ma non riesci a installarla correttamente.
Installare e configurare i componenti software necessari per un sistema di compilazione completo e funzionante non è così semplice come potrebbe sembrare. Ecco perché abbiamo creato questo tutorial passo passo su come installare e configurare Jenkins su AlmaLinux 8.
Prerequisiti
Per installare Jenkins su AlmaLinux 8, avrai bisogno di:
- Una macchina AlmaLinux 8 a 64 bit con una connessione Internet funzionante.
- Accesso root al tuo server. Puoi ottenerlo seguendo questa guida.
- Requisiti di sistema: secondo il sito ufficiale di Jenkins, un'installazione base di Jenkins richiede un minimo di 2 GB di RAM. Jenkin richiede 50 GB di spazio libero su disco per l'installazione, più 1 GB di spazio libero su disco per ogni build slave che desideri aggiungere. Inoltre, avrai bisogno di un core CPU e di un GB di RAM per ogni builder simultaneo che prevedi di supportare.
Aggiornamento del sistema
Prima di iniziare con l'installazione e la configurazione di Jenkins, è necessario aggiornare il sistema all'ultima versione disponibile dei pacchetti software.
Per questo, ssh sul tuo server ed esegui il seguente comando. Il pacchetto epel-release fornisce pacchetti aggiornati dal repository di sviluppo Extras che non fanno ancora parte di una versione principale di RHEL. Il repository Extras contiene pacchetti che non sono inclusi nel set di pacchetti standard di Red Hat ma sono comunque creati per le versioni RHEL. Ciò include pacchetti linguistici, supporto per versioni più recenti di icone adattive e altri aggiornamenti di funzionalità.
- sudo dnf check-update && sudo dnf update -y
- sudo dnf installa epel-release
Installazione di Java
Java è un linguaggio di programmazione basato su C. È considerato uno dei linguaggi di programmazione più popolari perché è stato utilizzato in molti software come Android e Google Chrome. Java è un linguaggio di programmazione multipiattaforma in grado di eseguire applicazioni autonome su sistemi operativi Windows e Linux, nonché su MacOS, Solaris, FreeBSD e altri sistemi UNIX.
Jenkins, in sostanza, è un programma Java che richiede l'installazione di Java Runtime Environment (JRE) e Java Development Kit (JDK) sul tuo sistema per funzionare correttamente.
Questa demo installerà OpenJDK 11 sul sistema. OpenJDK è un'implementazione gratuita e open source della piattaforma Java, Standard Edition (Java SE). È un ambiente di sviluppo e runtime per la creazione di applicazioni, microservizi e altri sistemi server eseguiti sulla Java virtual machine (JVM).
OpenJDK si basa sul Java Development Kit versione 8 di Oracle con il supporto di Project Jigsaw. Ciò significa che puoi eseguire Jenkins in OpenJDK 11 con Project Jigsaw senza problemi di compatibilità.
Esegui il comando seguente per installare OpenJDK 11 sul tuo sistema.
sudo dnf install java-11-openjdk -y
Una volta completata l'installazione, puoi eseguire il comando per verificare se funziona correttamente.
java -version
Vedrai il seguente output.
Installazione di Jenkins
Ora che hai installato Java, sei pronto per installare Jenkins.
Il repository di base AlmaLinux non include nessuno dei pacchetti Jenkins, quindi per prima cosa dovrai aggiungere il repository ufficiale del suo sviluppatore. È l'unico repository autorizzato a distribuire software confezionato per una specifica distribuzione supportata. In questo caso, si tratta del repository dello sviluppatore Jenkins per Redhat e i suoi derivati.
Esegui il comando seguente per importare la chiave Jenkins nel sistema. Questa chiave è un meccanismo di sicurezza utilizzato per convalidare l'autenticità di un pacchetto software.
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
Esegui il comando seguente per aggiungere il repository Jenkins al sistema.
cd /etc/yum.repos.d/ && curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo
Esegui il comando sudo dnf makecache per aggiornare la cache dei metadati di tutti i repository abilitati per garantire che i dati del repository del disco locale siano aggiornati. Questo può essere utilizzato durante l'aggiornamento/installazione dei pacchetti o se i metadati sono stati danneggiati.
sudo dnf makecache
Esegui il comando seguente per verificare se il repository Jenkins è stato aggiunto al tuo sistema. È un modo per controllare l'elenco corrente dei repository, che indica al gestore dei pacchetti quali repository sono stati abilitati. In altre parole, è un modo per vedere quali repository sono attualmente monitorati da dnf.
sudo dnf repolist
Esegui il comando seguente per installare Jenkins sul tuo sistema.
dnf install -y jenkins
Una volta completata l'installazione del comando, esegui il comando seguente per avviare il servizio Jenkins.
sudo systemctl start jenkins
Esegui il comando seguente per verificare lo stato del servizio Jenkins.
sudo systemctl status jenkins
Jenkins è un servizio di integrazione continua in grado di monitorare l'esecuzione di lavori ripetuti, come la creazione di un progetto software o lavori eseguiti da cron. Il monitoraggio dello stato di Jenkins può aiutarci a sapere se funzionano come previsto. Questa conoscenza può essere utile per risolvere eventuali problemi con i lavori eseguiti che non hanno avuto esito positivo.
Vedrai il seguente output.
Configurazione del firewall
Jenkins è il tuo server di build automatizzato, aiuta con l'integrazione e la distribuzione continue per i tuoi progetti. Jenkins ha la capacità di consentire alle connessioni SSH di eseguire build e attività su nodi slave remoti. Tuttavia, dovrai configurare il firewall per consentire a Jenkins l'accesso a questi server.
Dovrai aprire la porta 22 (SSH) e facoltativamente la porta 8080 (client Web) affinché Jenkins possa connettersi ai server remoti su cui risiedono le tue applicazioni. Queste porte sono generalmente chiuse per impostazione predefinita quando si utilizzano macchine virtuali basate su cloud. Se stai configurando Jenkins sul tuo hardware, dovrai consentire queste porte attraverso il firewall o il router.
Esegui il comando seguente per aprire queste porte sul tuo firewall.
sudo firewall-cmd --permanent --zone=public --add-port=22/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
Esegui il comando seguente per applicare le modifiche. Il comando sudo firewalld --reload garantisce che le regole e le configurazioni attualmente in vigore verranno ricaricate, se presenti. Ciò può essere utile per applicare le modifiche apportate tramite gli strumenti firewall-cmd al sistema in esecuzione.
sudo firewall-cmd --reload
Infine, esegui il comando seguente per verificare se le regole sono state aggiunte correttamente.
sudo firewall-cmd --list-all
Accesso all'interfaccia utente Web Jenkins
Ora che hai il tuo server Jenkins attivo e funzionante ma desideri accedervi nel browser web. Puoi accedere a Jenkins visitando il suo indirizzo IP sulla porta 8080.
Ad esempio, se il tuo IP è 192.168.1.100 e la porta predefinita è 8080, naviga nel seguente indirizzo per andare a Jenkins: 192.168.1.100:8080
Quando provi ad accedere all'interfaccia utente web di Jenkins, verrà visualizzata una schermata Sblocca Jenkins che ti chiede di accedere a /var/lib/jenkins/secrets/initialAdminPassword, come mostrato di seguito . Si tratta di dati crittografati che contengono la password utilizzata per accedere alla dashboard. Memorizza la password Admin iniziale in forma crittografata. Ciò garantisce che un utente malintenzionato che ha ottenuto l'accesso al tuo server Jenkins non disponga della password utilizzata al primo accesso.
Torna al tuo terminale, dove dovresti essere ancora loggato come utente root. Immettere il seguente comando per decrittografarlo:
cat /var/lib/jenkins/secrets/initialAdminPassword
Vedrai l'output che contiene la password per l'interfaccia utente Web Jenkins.
Copialo e incollalo nel tuo editor preferito e salvalo da qualche parte sul tuo computer. Ora puoi utilizzare questa password per accedere all'interfaccia web Jenkins.
Nella schermata successiva, seleziona installa plugin suggeriti. Un plugin non è altro che una directory con alcuni file al suo interno. Quando installi il plug-in, Jenkins rileva la directory e abilita le funzionalità specificate nei file.
Quando installi Jenkins per la prima volta, dovresti scegliere l'opzione per installare i plugin suggeriti. Questa opzione installa tutti i plugin necessari per una configurazione Jenkins di base. Nessun problema, puoi sempre modificare o aggiungere altri plugin in un secondo momento nella sezione Plugin dell'interfaccia web.
Nella schermata Crea primo utente amministratore, fornisci il tuo nome utente, indirizzo email, nome completo e password. Fai clic su Salva e continua per passare alla schermata successiva.
Nella schermata successiva, mantieni l'impostazione predefinita e fai clic su Inizia a utilizzare Jenkins
Verrai indirizzato al dashboard Jenkins, come mostrato di seguito. Quando hai installato Jenkins per la prima volta, probabilmente veniva fornita una pagina vuota come pagina predefinita. Puoi vederlo se guardi l'origine della pagina: non c'è niente lì.
Tuttavia, nel tempo, quando inizi ad aggiungere lavori e plugin, la pagina si trasformerà in una dashboard che mostra informazioni visive sui tuoi progetti.
Conclusione
In questo post hai imparato come installare e configurare un server Jenkins. Questo però è solo l'inizio; è un ambiente di creazione automatizzato molto prezioso che può essere sfruttato nella pratica quotidiana. Lascia i tuoi commenti e suggerimenti nella sezione sottostante se hai feedback o domande.