GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer Jenkins maître et esclave sur Ubuntu 18.04 LTS

Jenkins est un serveur d'automatisation dérivé du projet Hudson, 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 votre projet. Jenkins prend en charge une architecture "maître/esclave", ce qui lui permet d'héberger un grand nombre de builds de projets.

Comment fonctionne Jenkins 'maître/esclave' ?

L'architecture maître/esclave Jenkins est utilisée pour les environnements de construction distribués, où la charge de travail des projets de construction est distribuée à plusieurs nœuds d'agent, et nous pouvons utiliser différents environnements pour chaque construction.

Dans l'architecture "maître/esclave" de Jenkins, un maître se représente comme une installation de base de Jenkins et gère toutes les tâches du système de construction. Le nœud maître Jenkins sera utilisé pour la planification des tâches, la surveillance des nœuds esclaves, la distribution des builds aux nœuds esclaves, l'enregistrement et la représentation du résultat de la construction, ainsi que l'exécution directe des tâches de build.

Les nœuds esclaves Jenkins sont configurés pour décharger les projets de construction du maître, et il est nécessaire d'établir une connexion entre le maître et les esclaves. Les nœuds esclaves Jenkins peuvent fonctionner sur divers systèmes d'exploitation tels que Windows et Linux, et il n'est pas nécessaire d'y installer des packages Jenkins complets.

Dans ce didacticiel, nous allons apprendre à configurer l'architecture maître-esclave Jenkins à l'aide de la dernière version d'Ubuntu Ubuntu 18.04 LTS. Nous apprendrons à configurer le serveur maître Jenkins, puis à ajouter d'autres nœuds Ubuntu en tant qu'esclaves Jenkins.

Prérequis

  • Ubuntu 18.04
    • maître - 10.0.15.10
    • esclave01 - 10.0.15.21
    • slave02 - 10.0.15.22
  • Privilèges root

Qu'allons-nous faire ?

  1. Installer Jenkins Master
  2. Configurer les informations d'identification principales Jenkins
  3. Configurer les nœuds de l'agent esclave
  4. Ajouter de nouveaux nœuds esclaves
  5. Préparer les nœuds de l'agent esclave pour exécuter la compilation
  6. Test

Étape 1 - Installer Jenkins Master

Dans ce tutoriel, nous ne couvrirons pas l'installation de base de Jenkins. Il existe un certain nombre d'articles sur HowtoForge qui traitent de l'installation de Jenkins.

  • Installer Jenkins sur Ubuntu 16.04
  • Installer Jenkins sur Ubuntu 18.04
  • Installer Jenkins sur CentOS 7

Voici notre serveur maître Ubuntu 18.04 avec Jenkins installé dessus.

Étape 2 - Configurer les informations d'identification principales de Jenkins

Lorsque vous avez installé le serveur maître Jenkins, nous devons configurer le serveur maître lui-même. Par défaut, il existe différentes façons de démarrer les nœuds d'agent Jenkins, nous pouvons lancer les nœuds d'agent via SSH, un compte administratif Windows et via Java Web Start (JNLP), choisissez la meilleure méthode en fonction de la configuration de votre environnement et de votre système d'exploitation.

Pour ce guide, nous allons lancer les nœuds d'agent via ssh, et nous devons configurer les informations d'identification Jenkins sur notre serveur maître.

Générer une clé SSH

Nous utiliserons l'authentification par clé ssh pour configurer nos nœuds d'agent. Nous devons donc générer la clé ssh pour l'utilisateur Jenkins, puis télécharger manuellement la clé sur chaque nœud de serveur à l'aide de 'ssh-copy-id'.

Sur le serveur maître Jenkins, connectez-vous à l'utilisateur Jenkins et générez la clé ssh.

su - jenkins
ssh-keygen

Et vous obtiendrez la clé privée 'id_rsa' et la clé publique 'id_rsa.pub' dans le répertoire '.ssh'.

Configurer les identifiants sur Jenkins

Ouvrez votre tableau de bord Jenkins et cliquez sur le menu "Identifiants" à gauche.

Et cliquez sur le lien du domaine "global".

Cliquez maintenant sur "Ajouter des informations d'identification".

Choisissez maintenant la méthode d'authentification.

  • Type :nom d'utilisateur SSH avec clé privée
  • Portée :internationale
  • Nom d'utilisateur :jenkins
  • Clé privée :entrez directement et collez la clé privée 'id_rsa' de l'utilisateur Jenkins à partir du serveur maître.

Cliquez sur 'OK'.

Et les informations d'identification Jenkins avec la méthode de clé d'authentification ssh ont été créées.

Étape 3 - Configurer les nœuds esclaves

Nous allons maintenant configurer le serveur de nœuds esclaves en installant Java sur ces serveurs et créer un nouvel utilisateur Jenkins.

Installer Java

Installez les packages 'software-properties-common' et ajoutez le référentiel java PPA.

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

Installez maintenant Java OpenJDK en utilisant la commande apt ci-dessous.

sudo apt install openjdk-8-jdk -y

Une fois l'installation terminée, vérifiez la version Java installée.

java -version

Et vous obtiendrez Java OpenJDK 1.8 installé sur le système.

Ajouter un nouvel utilisateur Jenkins

Ajoutez maintenant l'utilisateur "Jenkins" à tous les nœuds d'agent.

Exécutez la commande ci-dessous.

useradd -m -s /bin/bash jenkins
passwd Jenkins

L'utilisateur 'Jenkins' pour les nœuds d'agent a été créé.

Copier la clé SSH du maître vers l'esclave

Ensuite, nous devons télécharger la clé 'id_rsa.pub' du maître aux nœuds de serveur esclave. Nous devons télécharger sur chaque nœud de serveur en utilisant la commande 'ssh-copy-id' comme ci-dessous.

ssh-copy-id [email protected]
ssh-copy-id [email protected]

Tapez le mot de passe de l'utilisateur Jenkins.

La clé ssh 'id_rsa.pub' a été téléchargée sur tous les nœuds d'agent.

Étape 4 - Ajouter de nouveaux nœuds esclaves

Sur le tableau de bord Jenkins, cliquez sur le menu "Gérer Jenkins", puis cliquez sur "Gérer les nœuds".

Cliquez sur "Nouveau nœud".

Tapez le nom du nœud 'slave01', choisissez 'l'agent permanent' et cliquez sur 'OK'.

Tapez maintenant les détails des informations sur le nœud.

  • Description :serveur d'agent de nœud slave01
  • Répertoire racine distant :/home/jenkins
  • Libellés :slave01
  • Méthode de lancement :lancez l'agent esclave via SSH, saisissez l'adresse IP de l'hôte "10.0.15.21", choisissez l'authentification à l'aide des informations d'identification "Jenkins".

Cliquez maintenant sur le bouton "Enregistrer" et attendez que le serveur maître se connecte à tous les nœuds d'agent et lance les services de l'agent.

Vous trouverez ci-dessous les résultats lorsque le serveur maître est connecté à tous les nœuds d'agent.

Des nœuds esclaves Jenkins ont été ajoutés au serveur maître.

Étape 5 - Préparer les nœuds de l'agent esclave pour exécuter la construction

Dans cette étape, nous allons configurer le maître Jenkins pour exécuter la construction sur les nœuds de l'agent esclave.

Cliquez sur le menu "Gérer Jenkins", puis cliquez sur "Configurer le système".

Allez maintenant dans la section "Configurations esclaves" et définissez tout ce dont vous avez besoin comme indiqué ci-dessous.

Plus d'informations sur les "configurations esclaves" sur le lien.

Cliquez sur le bouton "Enregistrer" et nous sommes maintenant prêts à exécuter la construction sur les nœuds de l'agent esclave.

Étape 6 - Tester

Maintenant, nous voulons créer une nouvelle version simple pour Jenkins, et nous voulons exécuter la version sur les nœuds d'agent bot 'slave01' et 'slave02'.

Sur le tableau de bord Jenkins, cliquez sur le menu "Nouvel élément".

Tapez le nom de l'élément, choisissez le projet de style libre et cliquez sur "OK".

Dans la section générale, tapez la description du poste et cochez l'option "Restreindre où ce projet peut être exécuté".

Sur 'Label Expression', spécifiez le nœud tel que 'slave01'.

Passez à la section de construction et choisissez l'option "Exécuter le shell", tapez la commande comme ci-dessous.

top -b -n 1 | head -n 10 && hostname

Cliquez sur le bouton "Enregistrer" et vous serez redirigé vers la page de l'emploi.

Cliquez sur "Construire maintenant" pour créer le projet, puis cliquez sur l'élément de la section "Historique de génération".

Et voici mon résultat.

Construit sur le nœud d'agent 'slave01'.

Construit sur le nœud d'agent 'slave02'.

L'installation et la configuration de l'architecture maître/esclave de Jenkins et des versions distribuées de Jenkins ont été effectuées avec succès.

Références

  • https://wiki.jenkins.io/

Ubuntu
  1. Comment configurer le serveur Rsyslog sur Ubuntu 18.04 LTS

  2. Comment mettre à niveau vers Ubuntu 22.04 LTS à partir d'Ubuntu 20.04 LTS et 21.10

  3. Comment installer Libreoffice 4.3 sur Ubuntu 12.04 et 14.04 LTS

  4. Comment installer Libreoffice 4.4 sur Ubuntu 15.04 et 14.04 LTS

  5. Comment configurer Elasticsearch sur Ubuntu 18.04 et 16.04 LTS

Comment configurer et utiliser Google Drive sur Ubuntu 22.04 LTS

Comment installer le serveur DNS maître et esclave BIND9 sur Ubuntu

Comment installer Jenkins sur Ubuntu 16.04 LTS

Comment configurer le pare-feu UFW sur Ubuntu 18.04 LTS

Comment installer Jenkins sur Ubuntu 18.04 LTS

Comment configurer le serveur et le client NTP sur Ubuntu 20.04 LTS