Déverrouillage CI/CD : Comment installer Jenkins avec succès sur Ubuntu

Êtes-vous en train de passer beaucoup de temps à déployer du code dans votre infrastructure avec de nombreuses étapes et logiciels ? Ne vous inquiétez pas, vous êtes au bon endroit pour apprendre comment installer Jenkins, l’outil open source le plus largement utilisé.

Dans ce tutoriel, vous apprendrez comment installer Jenkins sur une machine Ubuntu, afin de pouvoir construire et déployer du code en un clic.

Lisez la suite et commencez l’installation !

Prérequis

Cet article sera un tutoriel étape par étape. Pour suivre, assurez-vous d’avoir une machine Ubuntu. Ce tutoriel utilise Ubuntu 18.04 avec Apache installé.

Installation de Java Version 11 sur une Machine Ubuntu

Jenkins est un outil d’Intégration Continue (CI) et de Déploiement Continu (CD), que vous pouvez exécuter dans différents conteneurs servlet, tels que Apache Tomcat ou Glassfish. Mais pour cette démonstration, vous exécuterez Jenkins sur son serveur de conteneur servlet Java intégré.

Il existe plusieurs implémentations Java que vous pouvez utiliser pour travailler avec Jenkins, mais OpenJDK est la plus populaire, que vous installerez et utiliserez dans ce tutoriel.

1. Connectez-vous à votre machine Ubuntu à l’aide de votre client SSH préféré.

2. Ensuite, exécutez les commandes suivantes pour créer un répertoire nommé ~/install_jenkins_demo et basculez vers ce répertoire.

mkdir ~/install_jenkins_demo
cd ~/install_jenkins_demo

3. Exécutez la commande apt install ci-dessous pour installer Java sur votre machine.

# Installation de Java Version: Java SE 11 (LTS)
sudo apt install default-jdk 
Installing Java Version: Java SE 11 (LTS)

4. Enfin, exécutez la commande ci-dessous pour vérifier la version de Java installée sur votre machine. Ce faisant, vous vous assurez d’avoir installé Java avec succès.

# Vérification de la version de Java pour vérifier l'installation de Java.
java -version
Checking the Version of Java to verify Java installation

Installer Jenkins sur une instance Ubuntu 18.04 LTS

Maintenant que vous avez Java installé sur la machine Ubuntu, il est temps d’installer Jenkins sur votre machine. L’installation de Jenkins est assez similaire à l’installation d’autres packages sur votre machine.

En supposant que vous êtes toujours connecté au client SSH:

1. Tout d’abord, exécutez la commande apt update pour mettre à jour les packages de votre système.

sudo apt update

2. Ensuite, exécutez la commande wget ci-dessous pour ajouter la clé publique de Jenkins à votre système.

L’ajout de la clé publique permet au site Jenkins de télécharger le référentiel officiel de Jenkins ou tout package requis.

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

3. Exécutez les commandes suivantes pour ajouter le référentiel officiel de Jenkins à votre système et mettre à jour votre système.

# Ajout du référentiel officiel de Jenkins au système
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
# Mise à jour du package
sudo apt-get update

4. Maintenant, exécutez la commande ci-dessous pour installer le package Jenkins.

# Installation du Package Jenkins
sudo apt-get install Jenkins
Installing the Jenkins package on an ubuntu machine

5. Enfin, exécutez la commande service ci-dessous pour vérifier le statut du service Jenkins. # Validation du service Jenkins sur la machine ubuntu service jenkins status

# Validation du service Jenkins sur la machine ubuntu
service jenkins status

Comme vous pouvez le voir ci-dessous, le statut montre que le service Jenkins est actif.

Verifying the status of Jenkins service

Configuration d’une instance Jenkins

À ce stade, vous avez franchi la moitié de l’installation de Jenkins avec succès. Mais, avant de commencer à l’utiliser réellement, vous devez le configurer avec les fonctionnalités de base. Comment ? La première étape consiste à déverrouiller Jenkins nouvellement installé.

En supposant que vous êtes toujours connecté au client SSH:

1. Ouvrez votre navigateur préféré et accédez à l’adresse IP du serveur suivie du port 8080 comme adresse-ip-de-jenkins:8080. Après avoir accédé au lien, vous devrez déverrouiller Jenkins en fournissant le mot de passe administratif. Le mot de passe administratif est stocké dans le répertoire /var/lib/jenkins/secrets/initialAdminPassword sur le serveur (deuxième étape).

Unlocking Jenkins Instance

2. Exécutez la commande cat ci-dessous pour ajouter le mot de passe administrateur sur votre machine à partir du répertoire /var/lib/jenkins/secrets/initialAdminPassword.

cat /var/lib/jenkins/secrets/initialAdminPassword

Comme vous pouvez le voir ci-dessous, la chaîne énorme dans la sortie est le mot de passe admin. Notez le mot de passe admin car vous en aurez besoin pour déverrouiller Jenkins (troisième étape).

Checking the Initial Admin Password

3. Revenez à votre navigateur web (Déverrouiller Jenkins page) et saisissez le mot de passe admin que vous avez noté à l’étape deux.

Une fois que vous avez déverrouillé Jenkins, votre navigateur est redirigé vers une page où vous personnaliserez votre instance Jenkins avec des plugins (étape quatre).

4. Sur la page Personnaliser Jenkins, cliquez sur l’option Installer les plugins suggérés.

Le plugin Jenkins est un outil tiers qui s’intègre à Jenkins et vous permet d’effectuer des tâches telles que le plugin Git. Le plugin Git vous permet de vous connecter au repo Git, d’exécuter des commandes Git, etc.

Installing the Jenkins Plugin

5. Remplissez les détails de l’utilisateur administrateur, comme indiqué ci-dessous, et cliquez sur Enregistrer et Continuer pour créer un utilisateur administrateur. Cet utilisateur administrateur vous permet de travailler avec le tableau de bord de l’interface utilisateur Jenkins ou l’instance Jenkins.

Dès que vous cliquez sur Enregistrer et Continuer, vous obtiendrez un écran de configuration de l’instance, comme indiqué à l’étape cinq.

Par défaut, Jenkins a un utilisateur administrateur créé avec le nom d’utilisateur/mot de passe (admin: admin) mais vous offre toujours la possibilité de créer un utilisateur administrateur de votre choix. Vous pouvez passer et continuer en tant qu’administrateur si vous ne souhaitez pas créer d’utilisateur administrateur personnalisé.

Creating the First Admin user

6. Enfin, cliquez sur Enregistrer et Terminer pour enregistrer la configuration de l’instance.

La configuration de l’instance vous permet de spécifier l’URL Jenkins que vous souhaitez utiliser, et dans ce cas, vous utiliserez l’URL par défaut (c’est-à-dire serveur-ip:8080)

Configuring the Jenkins Instance
Jenkins Running successfully on Port 8080

Changement du port par défaut d’une instance Jenkins

Auparavant, vous avez appris que par défaut, Jenkins s’exécute sur le port 8080, ce qui est bien. Mais que faire si vous devez exécuter d’autres applications sur le même port, telles que Apache ou NGINX? Pas de soucis ! Vous pouvez changer le port par défaut de Jenkins (8080) et exécuter l’instance Jenkins sur d’autres ports.

1. Ouvrez le fichier /etc/default/Jenkins dans votre éditeur de texte préféré et changez le port par défaut de 8080 à 9090, puis enregistrez les modifications.

Changing the Default Jenkins Port

2. Ensuite, exécutez la commande ci-dessous pour redémarrer Jenkins, afin que les configurations mises à jour prennent effet.

sudo systemctl restart jenkins

3. Enfin, accédez à l’URL de Jenkins, mais cette fois, changez le port en 9090, comme indiqué ci-dessous.

Jenkins Running successfully on Port 9090

Exécution sécurisée de Jenkins (HTTPS) avec certificat SSL

À présent, votre instance Jenkins fonctionne parfaitement sur le port 9090. Mais est-elle sécurisée ? Non, elle ne l’est pas. Sécurisez votre instance Jenkins et évitez qu’elle ne soit compromise par des attaquants en activant un certificat SSL.

Les certificats SSL sont principalement utilisés pour tester sur la machine locale lorsqu’aucun certificat n’est disponible auprès d’une autorité de certification externe.

Pour sécuriser votre instance Jenkins :

1. Exécutez chaque commande ci-dessous pour créer un répertoire nommé ~/certificates afin de stocker les certificats et accédez à ce répertoire.

mkdir ~/certificates
cd ~/certificates

2. Ensuite, exécutez la commande openssl suivante pour générer une Requête de Signature de Certificat (CSR) et une clé privée.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Generating a CSR and private key

3. Exécutez les commandes suivantes pour créer un autre répertoire (/etc/apache2/ssl) et déplacez les certificats du répertoire ~/certificates/ vers le répertoire /etc/apache2/ssl.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

4. Ouvrez le fichier de configuration du site SSL Apache par défaut (/etc/apache2/sites-available/default-ssl.conf) et ajoutez les lignes ci-dessous. Assurez-vous de remplacer <my-server-name> par le nom réel de votre serveur.

Dans le code ci-dessous, vous spécifiez l’emplacement (clé de certificat et fichier) où vous avez précédemment copié les certificats SSL. De plus, pour que Jenkins redirige sur le port 9090, vous ajouterez l’argument ProxyPass et activerez le ProxyPreserveHost.

ServerName <my-server-name>
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
Updating default SSL Apache site configuration file

5. Exécutez maintenant chaque commande ci-dessous pour activer le module SSL, activer le site que vous avez modifié (étape quatre) et redémarrer le service Apache.

# Activer le module SSL, pour pouvoir travailler avec des connexions SSL.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Activer le site que vous avez modifié (étape quatre)
sudo a2ensite default-ssl.conf
# Redémarrer le service Apache
sudo service apache2 restart

6. Enfin, accédez à votre instance Jenkins, mais cette fois-ci, utilisez HTTPS, comme indiqué ci-dessous.

Comme vous pouvez le voir, Jenkins s’ouvre avec succès avec des connexions SSL sur le port HTTPS. Ne vous inquiétez pas si vous voyez un symbole d’avertissement affichant le message Non sécurisé. Vous obtiendrez cet avertissement car vous utilisez un certificat auto-signé (créé par vous) et non par l’autorité de certification.

Accessing Jenkins Instance with SSL connections on HTTPS port

Conclusion

Dans ce tutoriel, vous avez appris comment installer Jenkins sur une machine Ubuntu et vérifier que vous pouvez accéder à une instance Jenkins de manière sécurisée.

Maintenant, comment prévoyez-vous d’améliorer vos compétences avec Jenkins? Peut-être automatiser les déploiements web? Ou créer un pipeline CI/CD Jenkins pour améliorer votre processus de développement logiciel?

Source:
https://adamtheautomator.com/install-jenkins/