Tutoriel : Mettre à l’échelle des déploiements Jenkins avec une machine virtuelle s’exécutant dans Azure
Important
De nombreux services Azure disposent de plug-ins Jenkins. Certains de ces plug-ins ne seront plus pris en charge à partir du 29 février 2024. Azure CLI est la méthode actuellement recommandée pour intégrer Jenkins à des services Azure. Pour plus d’informations, reportez-vous à l’article Plug-ins Jenkins pour Azure.
Ce tutoriel montre comment créer une machine virtuelle Linux dans Azure et comment l’ajouter en tant que nœud de travail à Jenkins.
Durant ce tutoriel, vous allez effectuer les opérations suivantes :
- Créer une machine agent
- Ajouter l’agent à Jenkins
- Créer un travail libre (freestyle) Jenkins
- Exécuter le travail sur un agent de machine virtuelle Azure
Prérequis
- Installation jenkins : si vous n’avez pas accès à une installation Jenkins, configurez Jenkins à l’aide d’Azure CLI
Configurer la machine virtuelle agent
Utilisez az group create pour créer un groupe de ressources Azure.
az group create --name <resource_group> --location <location>
Utilisez az vm create pour créer une machine virtuelle.
az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
Points essentiels :
- Vous pouvez aussi charger votre clé SSH avec la commande
--ssh-key-value <ssh_path>
.
- Vous pouvez aussi charger votre clé SSH avec la commande
Installez le JDK.
Connectez-vous à la machine virtuelle à l’aide d’un outil SSH.
ssh username@123.123.123.123
Installez le JDK avec apt. Vous pouvez aussi l’installer avec d’autres outils du gestionnaire de package, comme yum ou pacman.
sudo apt-get install -y default-jdk
Une fois l’installation terminée, exécutez
java -version
pour vérifier l’environnement Java. La sortie va inclure les numéros de version associés aux différentes parties du JDK.
Configurer l’URL de Jenkins
Si vous utilisez JNLP, vous avez besoin de configurer l’URL de Jenkins.
Dans le menu, sélectionnez Manage Jenkins (Gérer Jenkins).
Sous System Configuration (Configuration système), sélectionnez Configure System (Configurer le système).
Vérifiez que l’URL de Jenkins est définie sur l’adresse HTTP de votre installation de Jenkins :
http://<your_host>.<your_domain>:8080/
.Cliquez sur Enregistrer.
Ajouter l’agent à Jenkins
Dans le menu, sélectionnez Manage Jenkins (Gérer Jenkins).
Sous System Configuration (Configuration système), sélectionnez Manage Nodes and Clouds (Gérer les nœuds et les clouds).
Dans le menu, sélectionnez New Node (Nouveau nœud).
Entrez une valeur dans Node Name (Nom du nœud).
Sélectionnez Permanent Agent(Agent permanent).
Cliquez sur OK.
Spécifiez les valeurs les champs suivants :
Nom : spécifiez un nom unique qui identifie un agent au sein de la nouvelle installation Jenkins. Cette valeur peut être différente du nom d’hôte de l’agent. En revanche, il est pratique que ces deux valeurs soient les mêmes. La valeur de ce nom peut inclure tout caractère spécial figurant dans la liste suivante :
?*/\%!@#$^&|<>[]:;
.Répertoire racine distant : un agent doit avoir un répertoire dédié à Jenkins. Spécifiez le chemin de ce répertoire sur l’agent. Il est préférable d’utiliser un chemin absolu, comme
/home/azureuser/work
ouc:\jenkins
. Ce chemin doit être un chemin local de la machine agent. Il ne doit pas être nécessairement visible à partir du maître. Si vous utilisez un chemin relatif, comme ./Jenkins-agent, le chemin est relatif au répertoire de travail fourni par la méthode de lancement.Étiquettes : les étiquettes sont utilisées pour regrouper des agents liés sémantiquement dans un groupe logique. Par exemple, vous pouvez définir une étiquette
UBUNTU
pour tous vos agents exécutant la distribution Ubuntu de Linux.Méthode de lancement : il existe deux options pour démarrer le nœud Jenkins distant : lancer des agents via SSH et Lancer l’agent via l’exécution de la commande sur le maître :
Lancez des agents via SSH : spécifiez les valeurs des champs suivants :
Hôte : adresse IP publique de machine virtuelle ou nom de domaine. Par exemple,
123.123.123.123
ouexample.com
.Informations d’identification : sélectionnez les informations d’identification à utiliser pour la connexion à l’hôte distant. Vous pouvez aussi sélectionner le bouton Add (Ajouter) pour définir de nouvelles informations d’identification, puis sélectionner ces nouvelles informations d’identification une fois qu’elles sont créées.
Stratégie de vérification de clé d’hôte : contrôle la façon dont Jenkins vérifie la clé SSH présentée par l’hôte distant lors de la connexion.
Launch agent via execution of command on the master (Lancer l’agent via l’exécution de la commande sur le maître) :
Téléchargez le fichier
agent.jar
à partir dehttps://<your_jenkins_host_name>/jnlpJars/agent.jar
. Par exemple :https://localhost:8443/jnlpJars/agent.jar
.Chargez
agent.jar
sur votre machine virtuelle.Démarrez Jenkins avec la commande
ssh <node_host> java -jar <remote_agentjar_path>
. Par exemple :ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar
.
Cliquez sur Enregistrer.
Une fois que vous avez défini les configurations, Jenkins ajoute la machine virtuelle en tant que nouveau nœud de travail.
Créer un travail dans Jenkins
Dans le menu, sélectionnez New Item (Nouvel élément).
Entrez le nom
demoproject1
.Sélectionnez Freestyle project (Projet libre).
Cliquez sur OK.
Sous l’onglet General (Général), choisissez Restrict where project can be run (Restreindre les emplacements d’exécution du projet), puis tapez
ubuntu
dans le champ Label Expression (Expression d’étiquette). Vous obtenez un message confirmant que l’étiquette est prise en charge par la configuration cloud créée à l’étape précédente.Sous l’onglet Source Code Management (Gestion du code source), sélectionnez Git, puis entrez l’URL suivante dans le champ Repository URL (URL du référentiel) :
https://github.com/spring-projects/spring-petclinic.git
Sous l’onglet Build (Générer), sélectionnez Add build step (Ajouter une étape de génération), puis Invoke top-level Maven targets (Appeler des cibles Maven de niveau supérieur). Entrez
package
dans le champ Goals (Objectifs).Cliquez sur Enregistrer.
Générer le nouveau travail sur un agent de machine virtuelle Azure
Sélectionnez le travail que vous avez créé à l’étape précédente.
Sélectionnez Build now (Générer maintenant). Une nouvelle build est mise en file d’attente, mais elle ne démarre pas tant qu’une machine virtuelle d’agent n’est pas créée dans votre abonnement Azure.
Une fois la génération terminée, accédez à la sortie de la console. Vous constatez que la génération a été effectuée à distance sur un agent Azure.