Tutoriel : Utiliser Azure Container Instances comme agent de build 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

Préparer le contrôleur Jenkins

  1. Accédez à votre portail Jenkins.

  2. Dans le menu, sélectionnez Manage Jenkins (Gérer Jenkins).

  3. Sous System Configuration (Configuration système), sélectionnez Configure System (Configurer le système).

  4. 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/.

  5. Dans le menu, sélectionnez Manage Jenkins (Gérer Jenkins).

  6. Sous Security (Sécurité), sélectionnez Configure Global Security (Configurer la sécurité globale).

  7. Sous Agents, spécifiez un port Fixed (Fixe) et entrez le numéro de port adapté à votre environnement.

    Exemple de configuration : Configure TCP port

  8. Cliquez sur Enregistrer.

Créer un agent de travail Jenkins

  1. Accédez à votre portail Jenkins.

  2. Dans le menu, sélectionnez Manage Jenkins (Gérer Jenkins).

  3. Sous System Configuration (Configuration système), sélectionnez Manage Nodes and Clouds (Gérer les nœuds et les clouds).

  4. Dans le menu, sélectionnez New Node (Nouveau nœud).

  5. Entrez une valeur dans Node Name (Nom du nœud).

  6. Sélectionnez Permanent Agent(Agent permanent).

  7. Cliquez sur OK.

  8. Entrez une valeur pour Remote root directory (Répertoire racine distant). Par exemple, /home/jenkins/work

  9. Ajoutez une étiquette (les étiquettes sont utilisées pour regrouper plusieurs agents dans un groupe logique. Un exemple d’étiquette serait linux de regrouper vos agents Linux.) avec la valeur .linux

  10. Définissez la méthode de lancement sur Launch agent by connecting to the master (Lancer l’agent par une connexion au maître).

  11. Vérifiez que tous les champs nécessaires ont été spécifiés ou entrés :

    Example Jenkins agent configuration

  12. Cliquez sur Enregistrer.

  13. Dans la page d’état de l’agent, vous devez voir JENKINS_SECRET et AGENT_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.

    The build-agent secret is displays after its successful creation.

Créer une instance de conteneur Azure avec CLI

  1. Utilisez az group create pour créer un groupe de ressources Azure.

    az group create --name my-resourcegroup --location westus
    
  2. 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.

  3. Revenez au tableau de bord Jenkins pour vérifier l’état de l’agent.

    Agent has started successfully

    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.

  1. 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.

    Box for the name of the build job, and list of project types

  2. 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.

  3. Sous Build, sélectionnez Ajouter une étape de build, puis sélectionnez Exécuter le shell. Entrez la commande echo "aci-demo".

  4. 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.

  1. Sélectionnez Build Now (Générer maintenant) pour démarrer un travail de build. Une fois le travail lancé, vous verrez un état semblable à celui de l’image suivante :

  2. Cliquez sur la build #1 dans Historique de build.

  3. Sélectionnez Sortie de la console pour afficher la sortie des builds.

Étapes suivantes