Panoramica
Questo articolo tratterà i passaggi su come installare Jenkins con Docker. Distribuiremo la versione LTS di Jenkins su un singolo computer host e utilizzeremo l'immagine Docker ufficiale di Jenkins dall'hub Docker. La documentazione completa di Jenkins Docker può essere verificata sul github ufficiale di jenkins.
Jenkins è un noto e popolare strumento di automazione CI/CD open source. Con molti vantaggi che offre, a volte può essere noioso eseguire la manutenzione su di esso, poiché dipende da Java per l'esecuzione. Fortunatamente, ora abbiamo una versione Docker di Jenkins che possiamo distribuire facilmente e semplifica la manutenzione poiché include anche Java.
Prerequisiti:
Docker preinstallato e funzionante. Docker ora può essere installato rapidamente con lo script di installazione automatica ufficiale dal sito Docker su alcune delle principali distribuzioni (ubuntu, debian, rasbian ecc...):
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
Installa Jenkins con Docker
Per installare Jenkins con Docker, la documentazione di Jenkins consiglia i seguenti argomenti del comando Docker:
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
Questo comando docker distribuirà il contenitore Jenkins con la versione LTS di Jenkins, monterà una directory /var/jenkins_home dal computer host (aggiungendo così la persistenza dei dati a Jenkins, il che significa nessuna perdita di dati al riavvio o all'aggiornamento del contenitore:si consiglia vivamente di aggiungere questa impostazione ) ed esporre le porte in modo che il dashboard Jenkins sia disponibile tramite browser web. La finestra mobile richiederà un paio di minuti per installare, distribuire ed eseguire Jenkins.
Con il montaggio della directory dal server host, ciò consente di eseguire il backup di tutta la configurazione, i file e i plug-in Jenkins (consigliato) e può anche migrare su un altro host.
Accesso e configurazione di Jenkins
Dopo aver distribuito il contenitore mobile Jenkins, Docker dovrebbe avviare il contenitore Jenkins immediatamente automaticamente e sul terminale, l'output dovrebbe visualizzare la password di sblocco dell'amministratore immediatamente all'avvio del contenitore. L'immagine sotto è un esempio:
Se il tuo contenitore Jenkins non si avvia, controlla se funziona con Docker e avvia. Puoi anche acquisire la password di sblocco dell'amministratore in un secondo momento.
docker ps -a docker start ${CONTAINER_ID or CONTAINER_NAME}
Per acquisire la password di sblocco dal contenitore Docker Jenkins, eseguire il comando da qui sotto. Con questo comando, possiamo stampare la password senza dover eseguire l'esecuzione nel contenitore (o shell nel contenitore):
sudo docker exec ${CONTAINER_ID or CONTAINER_NAME} cat /var/jenkins_home/secrets/initialAdminPassword
La prima volta che accedi alla dashboard, otterrai la pagina Sblocca Jenkins che mostrerà che eri e come acquisire la password dell'amministratore e sbloccare la dashboard dell'amministratore Jenkins.
Incolla la password nella pagina di sblocco e fai clic su continua.
Nella schermata successiva ci sarà la creazione del nuovo utente amministratore. È consigliabile creare e utilizzare il nuovo account amministratore.
La schermata seguente:configurazione dell'istanza, qui devi solo confermare o aggiornare l'URL della dashboard Jenkins.
Fai clic su Salva e termina e questo sarà l'ultimo passaggio della configurazione.
Configurazione firewall
Per ogni evenienza, se hai un firewall in esecuzione (che è altamente raccomandato), è necessario avere porte aperte per Jenkins, altrimenti non sarai in grado di accedere alla dashboard di amministrazione di Jenkins.
UFW sudo ufw allow 2376 IPTABLES sudo iptables -I INPUT -p tcp -m tcp --dport 2376 -j ACCEPT or sudo iptables -A INPUT -p tcp -m tcp --dport 2376 -j ACCEPT
Riepilogo
Per riassumere, abbiamo mostrato i passaggi su come installare Jenkins con Docker. La distribuzione di Jenkins con Docker è una buona soluzione perché riduce la manutenzione a livello di host e riduce anche la necessità di eseguire la manutenzione su Java, poiché Jenkins in Docker viene fornito insieme a Java preinstallato e configurato. Inoltre, c'è anche la facilità di implementazione (piuttosto che installare Java e Jenkins manualmente su un host Linux e aggiornarlo anche manualmente). Fondamentalmente abbiamo bisogno di un comando per distribuire Jenkins e possiamo lavorarci subito.
Anche se, la soluzione richiede meno manutenzione, ma può comunque essere pesante in termini di risorse (a seconda delle dimensioni del team, del numero di pipeline e del tipo di build da eseguire). Per eseguire almeno e utilizzare per imparare e fare pratica, sono necessari 2 GB di RAM dal computer host e per un piccolo team di sviluppo, per funzionare correttamente ed eseguire pipeline e build:si consiglia di avere almeno un host con 4 GB di RAM e CPU a 2 core.
Grazie per il tuo tempo...