Ricerca nel sito web

Come installare Jenkins su Rocky Linux 9


Questo tutorial esiste per queste versioni del sistema operativo

  • Rocky Linux 9
  • Rocky Linux 8.4

Su questa pagina

  1. Prerequisiti
  2. Installazione di Java OpenJDK
  3. Aggiunta del repository Jenkins
  4. Installazione di Jenkins
  5. Installazione e configurazione di httpd come proxy inverso
  6. Configurazione di Firewalld
  7. Configurazioni iniziali di Jenkins
  8. Crea la prima build di Jenkins
  9. Conclusione

Jenkins è uno strumento di automazione open source per l'integrazione continua/consegna continua (CI/CD). è interamente scritto in Java con il supporto di oltre 1000 plug-in per la creazione, la distribuzione e l'automazione del progetto. Jenkins è diventato uno dei principali strumenti di automazione che accelera il processo di sviluppo attraverso l'automazione. Jenkins integra i processi del ciclo di vita dello sviluppo come build, document, test, package, stage, deploy, analisi statica e molti altri.

Jenkins supporta più strumenti di controllo della versione come Git, Subversion, Mercurial, CVS, Perforce e RTC. Inoltre, può eseguire Apache Ant, Apache Maven, script di shell e comandi batch di Windows. Jenkins ha un forte supporto della comunità con un'ampia documentazione e un wiki, che rende Jenkins uno degli strumenti CI/CD di automazione più utilizzati. Inoltre, offre molti strumenti, linguaggi e attività di automazione diversi per automatizzare il processo di sviluppo e distribuzione.

In questo tutorial, installerai e configurerai Jenkins con proxy inverso Apache/httpd su un server Rocky Linux 9. Proteggerai anche Jenkins con SSL e firewalld. Infine, creerai una semplice build Jenkins.

Prerequisiti

Per iniziare, avrai bisogno dei seguenti requisiti per completare questo tutorial:

  • Un server Rocky Linux - Questo tutorial utilizza l'ultimo Rocky Linux 9.
  • Un utente non root con privilegi di amministratore sudo/root.
  • Un nome di dominio puntava a un indirizzo IP del server: questo esempio utilizza il dominio jenkins.hwdomain.io
  • SELinux configurato con modalità permissiva.

Installazione di Java OpenJDK

Jenkins è blad scritto in Java blah blah. In questo passaggio, installerai Java OpenJDK 11.

Il repository Rocky Linux predefinito fornisce più versioni di Java OpenJDK. Per installare Jenkins, puoi utilizzare Java OpenJDK 11 o 17. Questo esempio utilizza java OpenJDK 11, esegui il comando dnf di seguito per installarlo.

sudo dnf install java-11-openjdk

Immettere y quando richiesto e premere INVIO per procedere.

Una volta installato Java, verifica la versione di Java utilizzando il comando seguente. Dovresti installare Java OpenJDK 11 sul tuo Rocky Linux.

java -version

Aggiunta del repository Jenkins

Jenkins può essere implementato su più ambienti, incluso standalone su tali macchine virtuali o utilizzando la tecnologia dei container come Docker e Kubernetes. Per la distribuzione Linux, puoi installare Jenkins tramite i pacchetti binari forniti dal repository Jenkins.

Prima di aggiungere il repository Jenkins, esegui il seguente comando dnf per installare i seguenti pacchetti.

sudo dnf install wget curl

Quindi, scarica il repository Jenkins per il sistema operativo basato su RHEL tramite il comando wget di seguito. Il repository verrà archiviato in /etc/yum.repos.d/jenkins.repo.

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo

Successivamente, importa la chiave GPG del repository Jenkins sul tuo sistema usando il comando rpm di seguito.

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

Infine, verifica l'elenco dei repository abilitati sul tuo sistema tramite il comando dnf di seguito.

sudo dnf repolist

Riceverai un output che il repository Jenkins è disponibile sul tuo sistema e sei pronto per installare Jenkins.

Installazione di Jenkins

Con il repository aggiunto, ora installerai Jenkins sul tuo server Rocky Linux.

Eseguire il seguente comando dnf per installare Jenkins.

sudo dnf install jenkins

Quando richiesto, inserire y per confermare e premere INVIO per procedere. E l'installazione di Jenkins inizierà. Nell'output seguente, installerai Jenkins v2.361, che è l'ultima versione stabile di jenkins (al momento della stesura di questo documento).

Quindi, esegui il seguente comando systemctl per ricaricare il gestore systemd al termine dell'installazione di Jenkins. Al momento dell'installazione, verrà creato il servizio jenkins e questo comando applicherà il nuovo servizio al tuo sistema.

sudo systemctl daemon-reload

Successivamente, avvia e abilita il servizio jenkins tramite il comando systemctl. Jenkins dovrebbe ora essere in esecuzione sul tuo sistema e verrà eseguito automaticamente durante l'avvio o l'avvio.

sudo systemctl start jenkins
sudo systemctl enable jenkins

Infine, verifica Jenkins tramite il seguente comando systemctl.

sudo systemctl status jenkins

Riceverai un output simile allo screenshot seguente: il servizio Jenkins è in esecuzione.

Ora che Jenkins è in esecuzione, puoi avviare la configurazione iniziale per Jenkins. Tuttavia, configurerai ed eseguirai Jenkins con Apache/httpd come proxy inverso.

Installazione e configurazione di httpd come proxy inverso

A questo punto, Jenkins è ora accessibile tramite la porta TCP 8080. Per rendere Jenkins più intuitivo e sicuro, installerai e configurerai il server Web Apache/httpd come proxy inverso per il tuo Jenkins.

Prima di iniziare, assicurati di avere il nome di dominio indirizzato al tuo indirizzo IP di Rocky Linux e di aver generato certificati SSL. È possibile utilizzare certificati autofirmati o utilizzare SSL gratuito da Letsencrypt.

Innanzitutto, installa il server web httpd e il pacchetto mod_ssl tramite il comando dnf di seguito. Immettere y quando richiesto, quindi premere INVIO per continuare.

sudo dnf install httpd mod_ssl

Il pacchetto mod_ssl richiede di impostare un certificato per localhost. Quindi, esegui il seguente comando per generare un certificato autofirmato solo per localhost.

Durante il processo, ti verrà chiesto di inserire informazioni dettagliate per i certificati SSL. Puoi inserire i tuoi dettagli e saltare premendo INVIO.

openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

Dopo aver installato il server web httpd, crea una nuova configurazione dell'host virtuale /etc/httpd/conf.d/jenkins.conf utilizzando il seguente comando nano editor.

sudo nano /etc/httpd/conf.d/jenkins.conf

Aggiungi la seguente configurazione al file. Questo esempio utilizza il nome di dominio jenkins.hwdomain.io con i certificati SSL di Letsencrypt. Quindi, assicurati di modificare il nome di dominio e il percorso dei certificati SSL.

<VirtualHost *:80>
    ServerAdmin 
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass         /  http://localhost:8080/ nocanon
    ProxyPassReverse  /  http://localhost:8080/
    ProxyPassReverse  /  http://jenkins.hwdomain.io/
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"
</VirtualHost>

Salva il file e chiudi l'editor quando hai finito.

Quindi, esegui il comando seguente per verificare le configurazioni httpd. Se ottieni un output come Syntax OK, significa che hai una corretta configurazione di httpd e sei pronto per avviare il servizio httpd.

sudo apachectl configtest

Avviare e abilitare il servizio httpd tramite il comando systemctl di seguito.

sudo systemctl start httpd
sudo systemctl enable httpd

Verificare lo stato del servizio httpd utilizzando il comando seguente. Dovresti vedere che il servizio httpd è in esecuzione e abilitato, il che significa che httpd si avvierà automaticamente all'avvio.

sudo systemctl status httpd

In questo passaggio, hai installato il server Web httpd, configurato httpd come proxy inverso e abilitato HTTPS sicuro. Ma per accedere alla tua installazione di Jenkins, devi comunque configurare il firewalld sul tuo server Rocky Linux.

Configurazione di Firewalld

Firewalld è il software firewall predefinito sui sistemi operativi basati su RHEL, incluso Rocky Linux. È installato e funziona per impostazione predefinita su Rocky Linux. Ora configurerai il firewalld e aprirai il servizio HTTP e HTTPS per consentire l'accesso a Jenkins.

Eseguire il seguente comando firewall-cmd per aggiungere i servizi HTTP e HTTPS a firewalld.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

Successivamente, ricaricare firewalld per applicare le nuove modifiche e verificare l'elenco dei servizi abilitati su firewalld.

sudo firewall-cmd --reload
sudo firewall-cmd --list-services

Ciò fornirà il seguente output: entrambi i servizi HTTP e HTTPS vengono aggiunti a firewalld.

Con le porte HTTP e HTTPS aperte, avvierai quindi l'installazione iniziale e la configurazione di Jenkins tramite il browser web.

Configurazioni iniziali di Jenkins

Prima di iniziare la configurazione iniziale di Jenkins, eseguire il comando seguente per ottenere la password iniziale per Jenkins. La password amministratore iniziale è richiesta la prima volta durante la configurazione di Jenkins.

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Ora apri il browser Web e visita il nome di dominio della tua installazione di Jenkins (ad esempio: https://jenkins.hwdomain.io/).

Nella prima pagina, ti verrà chiesta la password amministratore iniziale di Jenkins. Incolla la tua password iniziale di Jenkins e fai clic su Continua.

Ora personalizza l'installazione di Jenkins installando alcuni plugin. È possibile selezionare i plug-in manualmente (per esperti) oppure selezionare l'opzione installa plug-in suggeriti per installare i plug-in consigliati da Jenkins.

L'installazione del plugin Jenkins inizierà ora. Tutti questi plugin verranno ora installati sul tuo Jenkins.

Al termine dell'installazione del plug-in, configurerai l'utente amministratore per Jenkins. Inserisci i dettagli, l'utente, l'e-mail e la password per il tuo Jenkins e fai clic su Salva e continua.

Successivamente, inserisci l'URL Jenkins nella configurazione dell'istanza. In questo esempio, Jenkins viene eseguito con proxy inverso httpd sul dominio https://jenkins.hwdomain.io/.

Fare clic su Salva e termina per completare la configurazione iniziale di Jenkins.

Al termine della configurazione iniziale di Jenkins, verrai reindirizzato alla dashboard di Jenkins.

Ora hai completato le configurazioni iniziali di Jenkins. Con questo in mente, puoi creare e configurare una nuova build di Jenkins. Continua a leggere per conoscere Jenkins Build.

Crea la prima build di Jenkins

Nella dashboard di Jenkins, fai clic sul menu Nuovo elemento per creare una nuova build di Jenkins.

Immettere il nome del progetto per questa nuova build e selezionare il tipo di progetto. In questo esempio, creerai una nuova build Jenkins \First Build\ con il tipo \Progetto Freestyle.

Fare clic su OK per continuare.

Nella sezione \Generale\, inserisci la descrizione del progetto. Quindi, passa alla sezione \Fasi di creazione\.

Seleziona le velocità di compilazione come \Esegui shell\ e inserisci il semplice comando bash di seguito.

echo "This is First build on jenkins"

Ora fai clic su Salva per confermare e creare la build Jenkins.

Ora verrai reindirizzato alla pagina di build di Jenkins per il progetto \First Build\.

Fare clic su \Build Now\ per avviare ed eseguire la build di Jenkins. Dopo aver eseguito il progetto, dovresti vedere la cronologia delle build nella sezione \Cronologia build\.

Nello screenshot seguente, c'è solo una cronologia delle build di Jenkins.

Fare clic sulla cronologia delle build numero 1 per ottenere maggiori dettagli sull'output delle build di Jenkins. Ora fai clic su \Console Output\ per ottenere un output dettagliato generato dalla build di Jenkins.

Ora hai imparato come creare ed eseguire la build di Jenkins.

Conclusione

In questo articolo, hai installato Jenkins su un server Rocky Linux 9. Hai anche installato e configurato il server Web Apache2/httpd come proxy inverso per Jenkins e protetto l'installazione di Jenkins tramite certificati SSL e firewalld.

In aggiunta a ciò, hai anche imparato come la configurazione iniziale di base per Jenkins e come creare ed eseguire la build di Jenkins tramite l'interfaccia web di amministrazione di Jenkins.

Ora che hai una distribuzione Jenkins completamente operativa, puoi aggiungere il tuo progetto e configurare la build Jenkins per la tua applicazione. Inoltre, puoi estendere la funzionalità di Jenkins aggiungendo plug-in adatti al tuo ambiente.