Le attività ripetitive sono generalmente noiose e finiscono per richiedere molto tempo ed energia. Nel tempo, sono stati sviluppati più strumenti di automazione per alleviare il fastidio di eseguire lavori ripetitivi. Uno di questi strumenti di automazione è Jenkins. Jenkins è un server di automazione opensource progettato per aiutare gli sviluppatori di software a creare, testare e distribuire applicazioni e quindi a semplificare il processo di integrazione e distribuzione continua.
In precedenza abbiamo scritto un articolo su come installare Jenkins su CentOS 8/RHEL 8. In questo articolo, faremo le cose in modo leggermente diverso ed eseguiremo il contenitore Jenkins come servizio systemd con docker.
Prerequisiti
Sono necessarie alcune cose prima di continuare.
- Docker installato sul tuo sistema Linux.
- Un utente normale con privilegi sudo.
Passaggio 1) Installa Docker Engine
Per iniziare, devi avere il motore Docker installato sul tuo sistema. Abbiamo un articolo dettagliato su come installare Docker su CentOS 8 / RHEL 8. Esegui sotto il comando Docker per visualizzare la versione Docker
$ sudo docker version
Dallo snippet sopra, abbiamo confermato che la finestra mobile è installata e che stiamo eseguendo la versione della finestra mobile 19.03.13.
Fase 2) Crea un utente Jenkins
Successivamente, creeremo un utente di sistema "Jenkins" che gestirà il servizio Jenkins. Ma prima, crea un gruppo di sistema per Jenkins:
$ sudo groupadd --system jenkins
Quindi crea l'utente di sistema Jenkins
$ sudo useradd -s /sbin/nologin --system -g jenkins jenkins
E infine aggiungi l'utente Jenkins al gruppo Docker come mostrato:
$ sudo usermod -aG docker jenkins
Per confermare che l'utente Jenkins è stato aggiunto al gruppo Docker, esegui il comando id come mostrato
$ id jenkins
L'output sarà,
[[email protected] ~]$ id jenkins uid=991(jenkins) gid=986(jenkins) groups=986(jenkins),989(docker) [[email protected] ~]$
Fantastico! Procediamo ed estraiamo un'immagine di Jenkins.
Passaggio 3) Estrarre l'immagine Jenkins dall'hub Docker
Richiamare il comando seguente per estrarre l'ultima immagine Jenkins dall'hub Docker.
$ sudo docker pull jenkins/jenkins:lts
Questo di solito richiede alcuni secondi su una connessione Internet abbastanza stabile. Una volta scaricato, verifica che l'immagine Jenkins sia presente invocando il seguente comando:
$ sudo docker images | grep jenkins
L'output del comando precedente sarebbe:
[[email protected] ~]$ sudo docker images | grep jenkins jenkins/jenkins lts f669140ba6ec 6 days ago 711MB [[email protected] ~]$
Jenkins richiede uno storage persistente per archiviare i dati e riutilizzarli anche in caso di arresto anomalo del container. Pertanto, creeremo una directory di archiviazione come mostrato.
$ sudo mkdir /var/jenkins $ sudo chown -R 1000:1000 /var/jenkins
Passaggio 4) Crea un servizio systemd per Jenkins
Utilizzando il tuo editor di testo preferito, crea un file systemd Jenkins come mostrato:
$ sudo vi /etc/systemd/system/jenkins-docker.service
Incolla i seguenti contenuti e salva il file.
[Unit] Description=Jenkins Server Documentation=https://jenkins.io/doc/ After=docker.service Requires=docker.service [Service] Type=simple User=jenkins Group=jenkins TimeoutStartSec=0 Restart=on-failure RestartSec=30s ExecStartPre=-/usr/bin/docker kill jenkins-server ExecStartPre=-/usr/bin/docker rm jenkins-server ExecStartPre=/usr/bin/docker pull jenkins/jenkins:lts ExecStart=/usr/bin/docker run --name jenkins-server --publish 8080:8080 --publish 50000:50000 --volume /var/jenkins:/var/jenkins_home jenkins/jenkins:lts SyslogIdentifier=jenkins ExecStop=/usr/bin/docker stop jenkins-server [Install] WantedBy=multi-user.target
Per avviare il servizio Jenkins, ricarica prima systemd e successivamente avvia Jenkins.
$ sudo systemctl daemon-reload $ sudo systemctl start jenkins-docker
Ora controlliamo se Jenkins è in esecuzione. Per fare ciò, eseguiremo:
$ sudo systemctl status jenkins-docker
Grande ! Jenkins è attivo e funzionante come servizio systemd. Poiché Jenkins sarà in esecuzione sulla porta 8080, apri la porta sul firewall come mostrato:
$ sudo firewall-cmd --permanent --add-port=8080/tcp $ sudo firewall-cmd --reload
Per configurare Jenkins, sfoglia semplicemente l'URL del server come mostrato
http://ip-server:8080
Otterrai la pagina "Sblocca Jenkins" come mostrato. Per procedere è necessario fornire la password che si trova nel file mostrato
[[email protected] ~]$ cat /var/jenkins/secrets/initialAdminPassword 9c61bd823a404056bf0a408f4622aafc [[email protected] ~]$
Al termine, fai clic su "Continua"
Quindi, seleziona l'opzione "Installa plug-in suggeriti" come mostrato.
Successivamente, crea un utente amministrativo per l'account Jenkins e fai clic su "Salva e continua"
Il programma di installazione ti guiderà attraverso i passaggi rimanenti fino alla fine. Dopo una corretta installazione, otterremo la seguente dashboard Jenkins
Ed è un involucro. In questa guida hai imparato come eseguire Jenkins all'interno di un contenitore mobile come servizio systemd.
Leggi anche : Come installare e configurare Jenkins su Ubuntu 20.04