Tutoriel : Utilisez Azure Container Instances comme agent de construction Jenkins
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.
Le service Azure Container Instances (ACI) offre un environnement à la demande, modulable et isolé pour l’exécution de charges de travail en conteneur. En raison de ces attributs, ACI constitue une plateforme idéale pour l’exécution des travaux de build Jenkins à grande échelle. Cet article vous montre comment déployer ACI et l’ajouter en tant qu’agent de build permanent pour un contrôleur Jenkins.
Pour plus d’informations sur Azure Container Instances, consultez l’article À propos d’Azure Container Instances.
Prérequis
- Abonnement Azure : Si vous n’avez pas d’abonnement Azure, créez un compte Azure gratuit avant de commencer.
- Serveur Jenkins : Si vous n'avez pas de serveur Jenkins installé, créez un serveur Jenkins sur Azure.
Préparer le contrôleur Jenkins
Accédez à votre portail 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/
.Dans le menu, sélectionnez Manage Jenkins (Gérer Jenkins).
Sous Security (Sécurité), sélectionnez Configure Global Security (Configurer la sécurité globale).
Sous Agents, spécifiez un port Fixed (Fixe) et entrez le numéro de port adapté à votre environnement.
Cliquez sur Enregistrer.
Créer un agent de travail Jenkins
Accédez à votre portail 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.
Entrez une valeur pour Remote root directory (Répertoire racine distant). Par exemple,
/home/jenkins/work
Ajoutez une étiquette (les étiquettes sont utilisées pour regrouper plusieurs agents dans un groupe logique. Un exemple d'étiquette serait
linux
pour regrouper vos agents Linux.) avec la valeurlinux
.Définissez la méthode de lancement sur Launch agent by connecting to the master (Lancer l’agent par une connexion au maître).
Vérifiez que tous les champs nécessaires ont été spécifiés ou entrés.
Cliquez sur Enregistrer.
Dans la page d’état de l’agent, vous devez voir
JENKINS_SECRET
etAGENT_NAME
. La capture d’écran suivante montre comment identifier les valeurs. Les deux valeurs sont nécessaires quand vous créez l’instance de conteneur Azure.
Créer une instance de conteneur Azure avec CLI
Utilisez az group create pour créer un groupe de ressources Azure.
az group create --name my-resourcegroup --location westus
Utilisez az container create pour créer une instance de conteneur Azure. Remplacez les espaces réservés par les valeurs obtenues au moment où vous avez créé l’agent de travail.
az container create \ --name my-dock \ --resource-group my-resourcegroup \ --ip-address Public --image jenkins/inbound-agent:latest \ --os-type linux \ --ports 80 \ --command-line "jenkins-agent -url http://jenkinsserver:port <JENKINS_SECRET> <AGENT_NAME>"
Remplacez
http://jenkinsserver:port
,<JENKINS_SECRET>
et<AGENT_NAME>
par les informations de votre contrôleur et de votre agent Jenkins. Une fois que le conteneur a démarré, il se connecte automatiquement au serveur du contrôleur Jenkins.Revenez au tableau de bord Jenkins pour vérifier l’état de l’agent.
Remarque
Les agents Jenkins se connectent au contrôleur via le port
5000
. Vous devez donc vérifier que ce port est autorisé comme entrée sur le contrôleur Jenkins.
Créer un travail de build
À présent, un travail de build Jenkins est créé pour montrer les builds Jenkins sur une instance de conteneur Azure.
Sélectionnez Nouvel élément, attribuez au projet de build un nom comme aci-demo, sélectionnez Freestyle project (Projet libre), puis sélectionnez OK.
Sous Général, vérifiez que l’option Restrict where this project can be run (Limiter où ce projet peut être exécuté). Dans la zone d’expression d’étiquette, entrez linux. Cette configuration garantit l’exécution de ce travail de build sur le cloud ACI.
Sous Build, sélectionnez Ajouter une étape de build, puis sélectionnez Exécuter le shell. Entrez la commande
echo "aci-demo"
.Cliquez sur Enregistrer.
Exécuter le travail de build
Pour tester le travail de build et observer Azure Container Instances, démarrez une build manuellement.
Sélectionnez Build Now (Générer maintenant) pour démarrer un travail de build. Une fois que le travail a commencé, un état d'avancement s'affiche.
Cliquez sur la build #1 dans Historique de build.
Sélectionnez Sortie de la console pour afficher la sortie des builds.