Jenkins è un server di integrazione continua gratuito e open source. È scritto in JAVA. Può essere utilizzato per automatizzare varie attività relative allo sviluppo di software come test di costruzione e distribuzione. Supporta molti sistemi di controllo della versione come git, SVN, mercurial ecc.
In questo tutorial, installeremo Jenkins Automation Server sul server CentOS 7. Imposteremo anche Nginx come proxy inverso per Jenkins.
Prerequisito
- Server CentOS 7 minimo
- Privilegi di root. Questa guida è scritta come utente root, se hai effettuato l'accesso come utente sudo, esegui sudo -i.
Aggiorna sistema di base
Prima di installare qualsiasi pacchetto si consiglia di aggiornare i pacchetti e il repository utilizzando il comando seguente.
yum -y update
Una volta aggiornato il sistema, procedi ulteriormente con l'installazione di JAVA.
Installa JAVA 8
Jenkins supporta sia OpenJDK che Oracle JAVA, in questo tutorial installeremo l'ultima versione di OpenJDK nel server. Esegui il comando seguente per installare OpenJDK sul tuo server.
yum install java-1.8.0-openjdk
Ora puoi controllare la versione Java usando il seguente comando.
java -version
Otterrai il seguente output.
[[email protected] ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
Dovrai anche verificare se la variabile di ambiente JAVA_HOME è impostata. Esegui il seguente comando per lo stesso.
echo $JAVA_HOME
Se ottieni un output nullo o vuoto, dovrai impostare manualmente la variabile JAVA_HOME. Modifica il file .bash_profile usando il tuo editor preferito. In questo tutorial useremo nano editor. Esegui il comando seguente per modificare .bash_profile usando nano.
nano ~/.bash_profile
Ora aggiungi le seguenti righe alla fine del file.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/ export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre
Ora crea il file usando il seguente comando.
source ~/.bash_profile
Ora puoi eseguire nuovamente il comando echo $JAVA_HOME per verificare se la variabile di ambiente è impostata o meno.
[[email protected] ~]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/
Ora che hai installato JAVA, puoi procedere ulteriormente all'installazione di Jenkins.
Installa Jenkins
Jenkins può essere installato direttamente aggiungendo il repository e importando la chiave GPG. Aggiungi il repository Jenkins al tuo sistema eseguendo il comando seguente.
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
Se non hai installato wget, puoi eseguire yum -y install wget.
Importa la chiave GPG eseguendo il comando seguente.
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
Una volta completata l'importazione, puoi installare Jenkins eseguendo il comando seguente.
yum -y install jenkins
Jenkins è ora installato sul tuo server. Tutti i pacchetti richiesti sono ora installati. Il programma di installazione ha anche creato un nuovo utente jenkins per eseguire il processo. Puoi procedere ulteriormente per avviare il server.
Avvio di Jenkins
Puoi avviare Jenkins eseguendo il comando seguente.
systemctl start jenkins
Per fermare Jenkins, puoi eseguire il seguente comando.
systemctl stop jenkins
Puoi controllare lo stato del processo eseguendo il comando seguente.
systemctl status jenkins
Installa Nginx
Invece di accedere all'applicazione sulla porta 8080, possiamo creare un proxy inverso per l'applicazione con il server Web Apache o Nginx. In questo tutorial, useremo nginx come proxy inverso per la tua applicazione. Ora nginx verrà eseguito dietro il server proxy nginx. nginx non è disponibile nel repository YUM predefinito. Dovrai installare il repository EPEL per installare Nginx.
yum -y install epel-release
Ora puoi installare Nginx eseguendo:
yum -y install nginx
Crea un nuovo blocco server eseguendo il comando seguente.
nano /etc/nginx/conf.d/jenkins.conf
Popolare il file con il seguente contenuto. Sostituisci ci.tuodominio.com con il tuo nome di dominio effettivo.
upstream jenkins{ server 127.0.0.1:8080; } server{ listen 80; server_name ci.yourdomain.com; access_log /var/log/nginx/jenkins.access.log; error_log /var/log/nginx/jenkins.error.log; proxy_buffers 16 64k; proxy_buffer_size 128k; location / { proxy_pass http://jenkins; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } }
Salva il file ed esci dall'editor. Ora puoi avviare Nginx eseguendo il seguente comando.
systemctl start nginx
Per consentire a Nginx di avviarsi automaticamente all'avvio eseguendo il comando seguente.
systemctl enable nginx
Configura Firewall e SELinux
Se hai un firewall in esecuzione sul tuo server, dovrai consentire la porta 8080 e la porta HTTP standard attraverso il firewall. Esegui il comando seguente per aggiungere le regole del firewall per consentire le porte 8080 e 80.
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-service=http --permanent
Ricarica le zone del firewall eseguendo:
firewall-cmd --reload
Configura SELinux per la configurazione del proxy nginx eseguendo il comando seguente.
setsebool httpd_can_network_connect 1 -P
Configura Jenkins
Ora puoi accedere all'interfaccia web del server Jenkins CI andando al seguente indirizzo web.
http://ci.yourdomain.com
Sostituisci ci.tuodominio.com con il tuo dominio attuale. Vedrai la seguente interfaccia.
Ti chiederà la tua password di amministratore iniziale, che viene generata dal programma di installazione e memorizzata nel file /var/lib/jenkins/secrets/initialAdminPassword. Esegui il comando seguente per ottenere la password amministratore iniziale.
cat /var/lib/jenkins/secrets/initialAdminPassword
Usa la password per accedere, procedi ulteriormente.
Nella prossima sezione, ti verrà chiesto quali plugin vuoi installare, per i principianti, si consiglia di scegliere Installa plugin suggeriti .
Questo installerà tutti i plugin necessari per iniziare.
Nella prossima interfaccia, installerà i plugin.
Ora dovrai creare un utente amministratore per la dashboard di amministrazione Jenkins.
Infine, verrai indirizzato alla dashboard amministrativa di Jenkins.
Conclusione
Ora puoi utilizzare Jenkins per l'integrazione continua nello sviluppo del software. Puoi saperne di più su Jenkins visitando il sito Web di Jenkins.