Installer Jenkins sur un VPS Ubuntu

Installer Jenkins sur un VPS Ubuntu
Alexandre P. dans System - mis à jour le 27-01-2026

Installer Jenkins sur un VPS Ubuntu 24, prérequis Java, configuration systemd et reverse proxy Nginx pour mettre en place une CI/CD simple et efficace.

Nous allons installer Jenkins sur un VPS Ubuntu 24.

Mais tout d'abord laissez moi vous présenter Jenkins.

🛠 Qu’est-ce que Jenkins ?

Jenkins est un outil open-source qui aide les développeurs à automatiser certaines tâches dans le processus de création d’un logiciel.

Vous pouvez voir Jenkins comme un robot de chantier pour votre projet de code : il travaille en arrière-plan et fait automatiquement des choses comme :

  • Lancer des tests à chaque modification du code
  • Construire votre application (compiler, créer un package…)
  • Déployer votre application sur un serveur ou un site web
  • Vous prévenir s’il y a des erreurs

🔁 À quoi ça sert concrètement ?

Supposons que vous travaillez sur un site web. À chaque fois que vous modifiez le code :

  • Jenkins détecte automatiquement la nouvelle version.
  • Il exécute des tests pour s'assurer que tout fonctionne.
  • Si tout est bon, il peut envoyer le site à la production (le mettre en ligne).
  • Sinon, il t'envoie une alerte avec les erreurs.

💡 Pourquoi c’est utile ?

  • Gain de temps : vous n’avez plus besoin de tout faire manuellement.
  • Moins d’erreurs humaines : Jenkins suit toujours les mêmes étapes.
  • Travail en équipe fluide : chaque membre peut coder sans casser le travail des autres.

Pré-requis

Avant de commencer, il faut une version de Java installé sur la machine:

    sudo apt update
    sudo apt install fontconfig default-jre

Une fois qu'on a installé Java , on va installer une LTS de Jenkins :

    sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \
      https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
    echo "deb [signed-by=/etc/apt/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

Une fois installé, on va créer un fichier service:

Dans /etc/systemd/system/jenkins.service , je mets ceci (fournit par Jenkins dans sa documentation):

    # /etc/systemd/system/jenkins.service
    #
    # This file is managed by systemd(1). Do NOT edit this file manually!
    # To override these settings, run:
    #
    #     systemctl edit jenkins
    #
    # For more information about drop-in files, see:
    #
    #     https://www.freedesktop.org/software/systemd/man/systemd.unit.html
    #
    
    [Unit]
    Description=Jenkins Continuous Integration Server
    Requires=network.target
    After=network.target
    
    [Service]
    Type=notify
    NotifyAccess=main
    ExecStart=/usr/bin/jenkins
    Restart=on-failure
    SuccessExitStatus=143
    
    # /etc/systemd/system/jenkins.service.d/override.conf
    [Service]
    Environment="JAVA_OPTS=-Djava.awt.headless=true"
    Environment="JENKINS_PORT=8081"

Puis on peut rafraîchir tout ça avec:

    sudo systemctl daemon-reload
    
    # Puis lancer
    sudo systemctl start jenkins

A partir de maintenant, on peut accèder à Jenkins via l'IP du serveur sur le port 8081 , mais je vous conseille de prévoir une redirection domaine depuis votre fournisseur.

En bonus, on va configurer Nginx pour Jenkins

Dans /etc/nginx/sites-available/jenkins.conf :

    upstream jenkins {
        server 127.0.0.1:8081;
    }
    
    server {
      server_name <domain>;
    
      location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://jenkins;
        proxy_redirect off;
    
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
      }
      
      error_page 404 /404.html;
      location = /404.html {
          internal;
      }
    }

Maintenant, on va cloner la conf pour activer le site sur Nginx:

    cd /etc/nginx/sites-enabled
    ln -s ../sites-available/jenkins.conf ./

C'est parti vous avez configuré Jenkins sur votre serveur !

Conclusion

jenkins_0a16468193.jpg

Je vais pouvoir mettre en place des outils de déploiement et CI grâce à ce serveur.

On verra comment faire un pipeline dans un prochain article.

FAQ

Pourquoi Jenkins nécessite-t-il Java avant d'être installé ?

Jenkins est une application Java, elle ne peut donc pas fonctionner sans une machine virtuelle Java présente sur le serveur. L'installation de fontconfig et default-jre couvre ce prérequis de façon minimale.

Pourquoi utiliser le port 8081 plutôt que le port par défaut de Jenkins ?

Le port par défaut de Jenkins est le 8080, mais il est souvent déjà utilisé par d'autres services. Changer ce port dans le fichier systemd permet d'éviter les conflits sans modifier la configuration applicative de Jenkins elle-même.

Est-ce qu'on peut accéder à Jenkins sans configurer Nginx ?

Oui, Jenkins est accessible directement via l'adresse IP du serveur suivie du port 8081 dès que le service est lancé. Nginx est une étape optionnelle mais recommandée pour exposer Jenkins via un nom de domaine et gérer proprement le proxy.

Comment vérifier que Jenkins fonctionne correctement après l'installation ?

Vous pouvez utiliser la commande systemctl status jenkins pour voir l'état du service. Si tout est en ordre, Jenkins sera accessible dans le navigateur à l'adresse de votre serveur sur le port configuré.

Est-ce que cette configuration est suffisante pour un usage en production ?

Elle constitue une base fonctionnelle, mais il manque au minimum la mise en place du HTTPS via Certbot sur Nginx et une réflexion sur le contrôle d'accès à l'interface Jenkins pour sécuriser l'exposition publique.

#jenkins#vps#ubuntu

user picture

Alexandre P.

Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.