install-jenkins
Installation et configuration de Jenkins sur Linux
À mesure que les pratiques de développement de logiciels évoluent, le besoin d’une intégration continue/déploiement continu (CI/CD) robuste devient impératif.
[Jenkins-Def]
Jenkins, un serveur d'automatisation open source, facilite les aspects techniques de l'intégration continue et, ce faisant, réduit considérablement le risque de problèmes d'intégration, ce qui contribue à son tour à livrer des logiciels plus rapidement.
Installation Jenkins
Conditions:
- Un serveur qui exécute Debian 12
- Un utilisateur privilèges (root)
- Java Developpement kit (JDK) installé
Premières étape: Installation de java
Jenkins est une application basée sur Java, la première étape consiste donc à installer Java. Vous pouvez installer le paquet OpenJDK disponible dans les dépôts par défaut de Debian :
sudo apt update
sudo apt install openjdk-11-jdk
Ou encore
sudo apt update
sudo apt install fontconfig openjdk-17-jre
java -version
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment (build 17.0.13+11-Debian-2)
OpenJDK 64-Bit Server VM (build 17.0.13+11-Debian-2, mixed mode, sharing)
Vérifiez l'installation en vérifiant la version Java :
java -version
Deuxième étapes: Ajout du référentiel Jenkins
Avant d'installer Jenkins, vous devez ajouter la clé du référentiel à votre système, puis ajouter le référentiel aux sources de votre système :
[Debian]
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins
# Installing the Jenkins Server.
sudo apt update
sudo apt install default-jdk -y
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install jenkins -y
# Installation of Git
sudo apt install git
Troisième étape: Installation de Jenkins:
Avec le référentiel ajouté, vous pouvez maintenant installer Jenkins :
sudo apt update
sudo apt install jenkins
Pour démarrer jenkins via un autre port ex: 8081
systemctl edit jenkins
Modifier le service
[Service]
Environment="JENKINS_PORT=8081"
Démarrer Jenkins
Une fois l'installation terminée, Jenkins démarre automatiquement. Vous pouvez vérifier son état avec :
Vous pouvez activer le service Jenkins pour qu'il démarre au démarrage avec la commande :
sudo systemctl enable jenkins
Vous pouvez démarrer le service Jenkins avec la commande :
sudo systemctl enable jenkins
Vous pouvez vérifier l'état du service Jenkins à l'aide de la commande :
sudo systemctl status jenkins
Si tout a été configuré correctement, vous devriez voir un résultat comme celui-ci :
Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-11-13 16:19:01 +03; 4min 57s ago
Configurer Jenkins avec HTTPS
Voici un guide rapide sur la façon de configurer Jenkins avec HTTPS. Il existe déjà de nombreux guides. J'en ai lu quelques-uns. Mais deux choses m'ont paru étranges.
- Premièrement, certains guides veulent que vous changiez le fichier central systemd pour Jenkins (au lieu d'un fichier override).
- Deuxièmement, ils veulent que vous créiez un fichier JKS (instead of PKCS #12)
[avertissements]
Donc, mes mots d'avertissement : n'écrasez jamais les fichiers dans /etc/systemd/system Ces fichiers sont gérés par votre système et votre gestionnaire de paquets.
[Notes] Si vous souhaitez ajouter ou modifier des paramètres pour Jenkins, utilisez /etc/systemd/system/jenkins.service.d/override.conf. JKS est un format propriétaire. (PCKS #12) d'autre part, c'est une norme industrielle et également le format de magasin de clés par défaut depuis Java 9 !
Générer un certificat SSL
Tout d'abord, vous aurez besoin d'un certificat. Vous pouvez en créer un avec openssl :
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out jenkinns.pem
Convertir key certificat
Bien entendu, si vous possédez déjà un certificat, vous n'avez pas besoin d'en créer un nouveau. Mais vous devrez le convertir en fichier PKCS #12.
openssl pkcs12 -inkey key.pem -in jenkins.pem -export -out jenkins.p12
Enfin, placez le fichier jenkins.p12 dans un endroit accessible à Jenkins. Je l'ai mis dans /var/lib/jenkins.
sudo mv ./jenkins.p12 /var/lib/jenkins
# I assume you run Jenkins with default settings. If you run it with a different user, you'll have to adapt the 'chown', of course!
sudo chown jenkins:jenkins /var/lib/jenkins/jenkins.p12
Activer HTTPS dans le service Jenkins
Une fois le nouveau keystore en place, indiquez à Jenkins comment l'utiliser. Dans le /lib/systemd/system/jenkins.service placez-y le contenu suivant.
[Service]
Environment="JENKINS_HTTPS_PORT=8443"
Environment="JENKINS_HTTPS_KEYSTORE=/var/lib/jenkins/jenkins.p12"
Environment="JENKINS_HTTPS_KEYSTORE_PASSWORD=password"
Maintenant, redémarrez le service Jenkins.
sudo systemctl daemon-reload
sudo systemctl restart jenkins.service
L'accès à https://localhost:8443 devrait maintenant vous donner la page de connexion Jenkins, mais avec une connexion https valide et sécurisée.
Pare-feu
Si vous avez installé un pare-feu, vous devez ajouter Jenkins comme exception. Vous devez remplacer YOURPORT dans le script ci-dessous par le port que vous souhaitez utiliser. Le port 8080 est le plus courant.
YOURPORT=8080
PERM="--permanent"
SERV="$PERM --service=jenkins"
firewall-cmd $PERM --new-service=jenkins
firewall-cmd $SERV --set-short="Jenkins ports"
firewall-cmd $SERV --set-description="Jenkins port exceptions"
firewall-cmd $SERV --add-port=$YOURPORT/tcp
firewall-cmd $PERM --add-service=jenkins
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
Quatrième étape: Configuration de Jenkins
Pour commencer à configurer Jenkins, vous devrez récupérer le mot de passe administrateur initial :
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Copiez le mot de passe et accédez à http://your_server_ip_or_domain:8080 dans votre navigateur Web. Lorsque vous y êtes invité, saisissez le mot de passe administrateur initial pour démarrer l'assistant de configuration.
Suivez les instructions à l'écran pour installer les plugins suggérés et créer un utilisateur administrateur. Une fois la configuration terminée, vous disposerez d'un serveur Jenkins entièrement opérationnel et prêt à l'emploi.
Conclusion:
Jenkins étant maintenant installé et configuré sur votre serveur Debian 12, vous êtes prêt à créer vos pipelines et à automatiser les différentes étapes de votre processus de développement.
Doc officiel: Jenkins-doc