introduction
Jenkins est un serveur d'automatisation open source destiné à automatiser les tâches techniques répétitives liées à l'intégration et à la fourniture continues de logiciels. Jenkins est basé sur Java et peut être installé à partir de packages Ubuntu ou en téléchargeant et en exécutant son fichier ARchive (WAR) d'application Web - une collection de fichiers qui constituent une application Web complète destinée à être exécutée sur un serveur.
Dans ce tutoriel, nous installerons Jenkins en ajoutant son référentiel de paquets Debian, puis en utilisant ce référentiel pour installer le paquet en utilisantapt-get
.
Conditions préalables
Pour suivre ce tutoriel, vous aurez besoin de:
One Ubuntu 16.04 server configuré avec un utilisateursudo
non root et un pare-feu en suivant lesUbuntu 16.04 initial server setup guide. Nous vous recommandons de commencer avec au moins 1 Go de RAM. VoirChoosing the Right Hardware for Masters pour obtenir des conseils sur la planification de la capacité d'une installation Jenkins de production.
Lorsque le serveur est configuré, vous êtes prêt à suivre.
[[step-1 -—- Installing-jenkins]] == Étape 1 - Installation de Jenkins
La version de Jenkins incluse dans les packages Ubuntu par défaut est souvent en retard sur la dernière version disponible du projet lui-même. Afin de tirer parti des derniers correctifs et fonctionnalités, nous utiliserons les packages maintenus par le projet pour installer Jenkins.
Nous allons d’abord ajouter la clé de référentiel au système.
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
Lorsque la clé est ajoutée, le système renvoieOK
. Ensuite, nous ajouterons l’adresse du dépôt de paquets Debian auxsources.list
du serveur:
echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
Lorsque les deux sont en place, nous exécuteronsupdate
afin queapt-get
utilise le nouveau référentiel:
sudo apt-get update
Enfin, nous installerons Jenkins et ses dépendances, y compris Java:
sudo apt-get install jenkins
Maintenant que Jenkins et ses dépendances sont en place, nous allons démarrer le serveur Jenkins.
[[step-2 -—- starting-jenkins]] == Étape 2 - Démarrage de Jenkins
En utilisantsystemctl
, nous allons démarrer Jenkins:
sudo systemctl start jenkins
Étant donné quesystemctl
n'affiche pas la sortie, nous utiliserons sa commandestatus
pour vérifier qu'il a bien démarré:
sudo systemctl status jenkins
Si tout s'est bien passé, le début de la sortie devrait indiquer que le service est actif et configuré pour démarrer au démarrage:
Output● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; bad; vendor preset: enabled)
Active:active (exited) since Thu 2017-04-20 16:51:13 UTC; 2min 7s ago
Docs: man:systemd-sysv-generator(8)
Maintenant que Jenkins est en cours d’exécution, nous allons ajuster nos règles de pare-feu afin de pouvoir accéder à Jenkins à partir d’un navigateur Web afin de terminer la configuration initiale.
[[step-3 -—- opening-the-firewall]] == Étape 3 - Ouverture du pare-feu
Par défaut, Jenkins fonctionne sur le port 8080, nous allons donc ouvrir ce port en utilisantufw
:
sudo ufw allow 8080
Nous pouvons voir les nouvelles règles en vérifiant le statut de UFW.
sudo ufw status
Nous devrions voir que le trafic est autorisé à porter 8080 de n'importe où:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
8080 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
8080 (v6) ALLOW Anywhere (v6)
[.Remarque]##
Note: Si le pare-feu est inactif, les commandes suivantes garantiront qu'OpenSSH est autorisé, puis l'activeront.
sudo ufw allow OpenSSH
sudo ufw enable
Maintenant que Jenkins est installé et que le pare-feu nous permet d’y accéder, nous pouvons terminer la configuration initiale.
[[step-4 -—- setting-up-jenkins]] == Étape 4 - Configuration de Jenkins
Pour configurer notre installation, nous visiterons Jenkins sur son port par défaut,8080
, en utilisant le nom de domaine ou l'adresse IP du serveur:http://ip_address_or_domain_name:8080
Nous devrions voir l'écran “Unlock Jenkins”, qui affiche l'emplacement du mot de passe initial
Dans la fenêtre du terminal, nous utiliserons la commandecat
pour afficher le mot de passe:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Nous allons copier le mot de passe alphanumérique de 32 caractères du terminal et le coller dans le champ «Mot de passe de l'administrateur», puis cliquer sur «Continuer». L'écran suivant présente la possibilité d'installer les plugins suggérés ou de sélectionner des plugins spécifiques.
Nous allons cliquer sur l’option «Installer les plugins suggérés», qui lancera immédiatement le processus d’installation:
Une fois l'installation terminée, vous serez invité à configurer le premier utilisateur administratif. Il est possible d'ignorer cette étape et de continuer en tant queadmin
en utilisant le mot de passe initial que nous avons utilisé ci-dessus, mais nous prendrons un moment pour créer l'utilisateur.
[.note] #Note: Le serveur Jenkins par défaut n'est PAS chiffré, donc les données soumises avec ce formulaire ne sont pas protégées. Lorsque vous êtes prêt à utiliser cette installation, suivez le guideHow to Configure Jenkins with SSL using an Nginx Reverse Proxy. Cela protégera les informations d'identification de l'utilisateur et les informations sur les versions transmises via l'interface Web.
#
Une fois que le premier utilisateur admin est en place, vous devriez voir un écran de confirmation «Jenkins is ready!».
Cliquez sur «Commencer à utiliser Jenkins» pour visiter le tableau de bord principal de Jenkins:
Jenkins a été installé avec succès à ce stade.
Conclusion
Dans ce didacticiel, nous avons installé Jenkins à l’aide des packages fournis par le projet, démarré le serveur, ouvert le pare-feu et créé un utilisateur administratif. À ce stade, vous pouvez commencer à explorer Jenkins.
Lorsque vous avez terminé votre exploration, si vous décidez de continuer à utiliser Jenkins, suivez le guide,How to Configure Jenkins with SSL using an Nginx Reverse Proxy afin de protéger les mots de passe, ainsi que toute information système ou produit sensible qui sera envoyée entre votre machine et le serveur en texte brut.