Linux Jenkins

De Epsi-Wis
Aller à la navigation Aller à la recherche

Comment installer Jenkins Automation Server avec Apache sur Ubuntu 20.04

Jenkins est un serveur d'automatisation gratuit et open source qui aide les développeurs à créer, tester et déployer leurs logiciels. Il est basé sur Java et fournit plus de 1700 plugins qui aident à automatiser les tâches répétitives impliquées dans le processus de développement logiciel. Il prend en charge plusieurs systèmes d'exploitation tels que Windows, Mac OS X et Linux, et peut facilement être distribué sur plusieurs machines.

Dans ce tutoriel, nous allons vous montrer comment installer Jenkins avec Apache en tant que proxy inverse sur Ubuntu 20.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Commencer

Avant de commencer, c'est une bonne idée de mettre à jour votre système avec la dernière version. Vous pouvez mettre à jour votre système avec la commande suivante :

apt-get update -y 


Installer Java

Jenkins est basé sur Java, Java doit donc être installé sur votre système. S'il n'est pas installé, vous pouvez l'installer en exécutant la commande suivante :

apt-get install openjdk-11-jdk gnupg2 -y

Une fois installé, vérifiez la version installée de Java avec la commande suivante :

java -version

Vous devriez obtenir la sortie suivante :

openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer Jenkins

Par défaut, la dernière version de Jenkins n'est pas disponible dans le référentiel par défaut Ubuntu 20.04. Vous devrez donc ajouter le référentiel Jenkins à votre système.

Tout d'abord, téléchargez et ajoutez la clé GPG avec la commande suivante :

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | apt-key add -

Ensuite, ajoutez le référentiel Jenkins à l'APT avec la commande suivante :

sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

Ensuite, mettez à jour le référentiel et installez la dernière version de Jenkins avec la commande suivante :

apt-get update -y
apt-get install jenkins -y

Une fois l'installation réussie, vérifiez l'état du Jenkins avec la commande suivante :

systemctl status jenkins

Vous devriez voir la sortie suivante

● jenkins.service - LSB: Start Jenkins at boot time
    Loaded: loaded (/etc/init.d/jenkins; generated)
    Active: active (exited) since Sat 2021-11-13 15:41:19 CET; 16min ago
      Docs: man:systemd-sysv-generator(8)
   Process: 1962 ExecStart=/etc/init.d/jenkins start (code=exited, status=0/SU>
nov. 13 15:40:40 ubuntu systemd[1]: Starting LSB: Start Jenkins at boot time...
nov. 13 15:40:43 ubuntu jenkins[1962]: Correct java version found
nov. 13 15:40:43 ubuntu jenkins[1962]:  * Starting Jenkins Automation Server je>
nov. 13 15:40:43 ubuntu su[2149]: (to jenkins) root on none
nov. 13 15:40:43 ubuntu su[2149]: pam_unix(su-l:session): session opened for us>
nov. 13 15:41:19 ubuntu jenkins[1962]:    ...done.
nov. 13 15:41:19 ubuntu systemd[1]: Started LSB: Start Jenkins at boot time.  

À ce stade, Jenkins s'exécute et écoute sur le port 8080. Vous pouvez le vérifier avec la commande suivante :

netstat -plntu | grep 8080

Vous devriez voir la sortie suivante :

tcp6       0      0 :::8080                 :::*                    LISTEN      -

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer Apache en tant que proxy inverse

Après avoir installé le serveur Web Apache, activez les modules requis avec la commande suivante :

a2enmod proxy
a2enmod proxy_http

Ensuite, créez un fichier de configuration d'hôte virtuel Apache pour Jenkins avec la commande suivante :

nano /etc/apache2/sites-available/jenkins.conf

Ajoutez les lignes suivantes en les modifians pour vous :

<Virtualhost *:80>
    ServerName        jenkins.exemple.com
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode
 
    <Proxy http://localhost:8080/>
      Order deny,allow
      Allow from all
    </Proxy>
 
    ProxyPass         /  http://localhost:8080/ nocanon
    ProxyPassReverse  /  http://localhost:8080/
    ProxyPassReverse  /  http://jenkins.hakase-labs.io/
</Virtualhost>

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, activez le fichier de configuration de l'hôte virtuel Apache avec la commande suivante :

a2ensite jenkins

Ensuite, redémarrez le service Apache et Jenkins pour appliquer les modifications :

systemctl reload apache2
systemctl restart jenkins

Remarque : si vous vous connectez à Jenkins via Internet, il est recommandé de sécuriser les connexions avec SSL/TLS. Pour activer SSL via Let's Encrypt en utilisant certbot pour l'interface Web Jenkins

sudo certbot -d jenkins.exemple.com

Access Jenkins Web Interface

cat /var/lib/jenkins/secrets/initialAdminPassword