Intégration Continue Java/Jenkins
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