Comment installer le serveur d’automatisation Jenkins avec Apache sur Ubuntu 18.04

Jenkins est un serveur d’automatisation bifurqué du projet Hudson. Jenkins est une application basée sur un serveur fonctionnant dans un conteneur de servlets Java. Il prend en charge de nombreux systèmes logiciels SCM (Source Control Management), notamment Git, SVN et Mercurial. Jenkins fournit des centaines de plugins pour automatiser ton projet. Jenkins, créé par Kohsuke Kawaguchi, a été publié pour la première fois en 2011 sous la licence MIT, et c’est un logiciel libre.

Dans ce tutoriel, je vais te montrer comment installer la dernière version stable de Jenkins sur Ubuntu Server 18.04 LTS (Bionic Beaver). Nous exécuterons Jenkins sur notre propre nom de domaine, et nous installerons et configurerons Jenkins pour qu’il fonctionne sous le proxy inverse du serveur Web Apache.

Conditions préalables

  • Ubuntu 18.04
  • Privilèges de racine

Ce que nous allons faire ?

  1. Installer Java
  2. Installe Jenkins
  3. Installer et configurer Apache2 comme proxy inverse pour Jenkins
  4. Configurer le pare-feu UFW
  5. Configurer Jenkins
  6. Sécurité de Jenkins
  7. Tester

Étape 1 – Installer Java

Jenkins est une application basée sur Java, nous devons donc installer Java OpenJDK sur le serveur. Dans cette étape, nous allons installer Java 8 à partir d’un dépôt PPA que nous allons ajouter en premier.

Installe les paquets software-properties-common, puis ajoute le dépôt PPA java OpenJDK.

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y

Installer Java

Installe maintenant Java 8 à l’aide de la commande apt.

sudo apt install openjdk-8-jdk -y

Lorsque l’installation est terminée, vérifie la version de java installée sur le système.

java -version

Et tu obtiendras que Java OpenJDK 1.8 est maintenant installé sur le système Ubuntu 18.04.

Java OpenJDK 1.8 est maintenant installé sur l'Ubuntu 18.04

Remarque :

  • Si tu as plusieurs versions de java sur ton système, modifie la version par défaut de java à l’aide de la commande ci-dessous.
sudo update-alternatives --config java

Étape 2 – Installe Jenkins

Jenkins fournit un référentiel Ubuntu pour les paquets d’installation et nous allons installer Jenkins à partir de ce référentiel.

Ajoute la clé et le référentiel Jenkins au système à l’aide de la commande ci-dessous.

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/' | tee -a /etc/apt/sources.list

Mets maintenant à jour le référentiel et installe Jenkins.

sudo apt update
sudo apt install jenkins -y

Installer Jenkins sur Ubuntu

Lorsque l’installation est terminée, démarre le service Jenkins et ajoute-le au temps de démarrage.

systemctl start jenkins
systemctl enable jenkins

Jenkins est maintenant opérationnel sur le serveur Ubuntu 18.04 et fonctionne sur le port par défaut ‘8080’. Vérifie-le en utilisant netstat comme ci-dessous.

netstat -plntu

Et tu obtiendras le résultat comme ci-dessous.

Le serveur Jenkins est activé et démarré

Étape 3 – Installer et configurer Apache2 comme proxy inverse pour Jenkins

Dans ce tutoriel, nous allons exécuter Jenkins derrière un serveur Web Apache, nous allons configurer Apache comme proxy inverse pour Jenkins.

Tout d’abord, nous allons installer Apache et activer certains modules requis, puis nous allons créer le fichier d’hôte virtuel avec le nom de domaine jenkins.hakase-labs.io pour Jenkins. Utilise ton propre nom de domaine ici et remplace-le dans tous les fichiers de configuration où il apparaît.

Installe le serveur Web apache2 à partir du dépôt Ubuntu.

sudo apt install apache2 -y

Une fois l’installation terminée, active les modules proxy et proxy_http afin que nous puissions configurer apache comme serveur frontal/proxy inverse pour Jenkins.

a2enmod proxy
a2enmod proxy_http

Ensuite, crée un nouveau fichier d’hôte virtuel pour Jenkins dans le répertoire sites-available.

cd /etc/apache2/sites-available/
vim jenkins.conf

Colle la configuration de l’hôte virtuel ci-dessous.

<Virtualhost *:80>
    ServerName        jenkins.hakase-labs.io
    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>

Sauvegarde et quitte, puis active l’hôte virtuel de Jenkins avec la commande a2ensite.

a2ensite jenkins

Redémarre les services Apache et Jenkins.

systemctl restart apache2
systemctl restart jenkins

L’installation et la configuration d’apache2 en tant que proxy inverse pour Jenkins sont terminées.

Apache comme proxy inverse pour jenkins

Étape 4 – Configurer le pare-feu UFW

Avant d’activer le pare-feu UFW sur le serveur Ubuntu, nous devons ajouter le port des services de base tels que SSH, HTTP et HTTPS.

Ajoute les services SSH, HTTP et HTTPS au pare-feu ufw.

ufw allow ssh
ufw allow http
ufw allow https

Maintenant, démarre et active le pare-feu ufw.

ufw enable

Tape ‘y’ et appuie sur Entrée.

Configurer le pare-feu UFW

Le pare-feu ufw est maintenant activé et le port HTTP a été ajouté.

Étape 5 – Configure Jenkins

Jenkins fonctionne sur le nom de domaine‘http://jenkins.hakase-labs.io‘. Ouvre ton navigateur Web et tape l’URL.

Tu obtiendras l’écran qui te demande de saisir le mot de passe administrateur initial. Un mot de passe a déjà été généré par Jenkins, il nous suffit donc d’afficher et de copier les résultats dans la case du mot de passe.

Montre le mot de passe admin initial de Jenkins avec la commande cat.

cat /var/lib/jenkins/secrets/initialAdminPassword

Configure jenkins

Colle les résultats à l’écran et clique sur ‘Continue’.

Déverrouille Jenkins

Maintenant, nous devrions installer quelques plugins dans Jenkins pour avoir une bonne base pour une utilisation ultérieure. Choisis ‘Installer les plugins suggérés’ et clique dessus.

Personnalise Jenkins

Installation des plugins de Jenkins en cours.

Jenkins pour commencer

Une fois l’installation des plugins terminée, nous devons créer un nouveau mot de passe administrateur. Saisis ton nom d’utilisateur admin, ton mot de passe, ton email, etc. et clique sur ‘Enregistrer et continuer’.

Créer un utilisateur admin

Pour la configuration de l’instance, tape le nom de domaine Jenkins ‘http://jenkins.hakase-labs.io’ et clique sur le bouton ‘Enregistrer et terminer’.

Configuration de l'instance

Clique maintenant sur le bouton ‘Commencer à utiliser Jenkins’.

Jenkins est prêt

Et tu seras redirigé vers le tableau de bord d’administration de Jenkins.

Bienvenue à Jenkins

L’installation et la configuration de Jenkins ont été effectuées avec succès.

Étape 6 – Sécurité de Jenkins

Depuis le tableau de bord d’administration de Jenkins, nous devons configurer les paramètres de sécurité standard de Jenkins, clique sur ‘Gérer Jenkins’, puis ‘Configurer la sécurité globale’.

Gérer Jenkins

Jenkins propose plusieurs méthodes d’autorisation dans la section ‘Contrôle d’accès’. Nous utiliserons la ‘Sécurité basée sur la matrice’, afin de pouvoir contrôler tous les privilèges des utilisateurs.

Ajoute l’utilisateur ‘hakase’ dans la case ‘Utilisateur/Groupe’ et clique sur ajouter.

Donne à l’utilisateur ‘hakase’ tous les privilèges en cochant toutes les options, puis clique sur le bouton ‘Enregistrer’.

Paramètres de Jenkins

Tu seras redirigé vers le tableau de bord, et s’il y a une option de connexion, tape simplement ton utilisateur et ton mot de passe d’administrateur.

Connecte-toi en tant qu'administrateur

Étape 7 – Test

Dans cette section, nous voulons créer une tâche simple pour le serveur Jenkins. Nous allons créer une tâche simple pour tester Jenkins et pour connaître la charge du serveur avec la commande top.

Dans le tableau de bord d’administration de Jenkins, clique sur ‘Créer un nouveau travail’.

Créer un travail dans Jenkins

Saisis le nom de la tâche. Nous utiliserons ‘Checking System’ ici, sélectionne ‘Freestyle Project’ et clique sur ‘OK’.

Emplois à Jenkins

Va dans l’onglet ‘Construction’. Sur la page ‘Ajouter une étape de construction’, sélectionne l’option ‘Exécuter le shell’.

Saisis la commande ci-dessous dans la case.

top -b -n 1 | head -n 5

Clique sur « Enregistrer ».

Crée un travail Jenkins

Tu te trouves maintenant sur la page de la tâche ‘Système de vérification des projets’. Clique sur ‘Build Now’ pour exécuter la tâche ‘système de vérification’.

Système de vérification des projets

Après l’exécution de la tâche, tu verras l' »Historique de la construction », clique sur la première tâche pour voir les résultats.

Voici les résultats de la tâche exécutée par Jenkins.

Résultat de l'exécution de la tâche Jenkins

L’installation et la configuration de l’outil d’automatisation Jenkins avec Apache2 comme proxy inverse sur Ubuntu 18.04 se sont déroulées avec succès.

Références

Vous aimerez aussi...