Créer des personnalisations de dev box réutilisables

Dans cet article, vous apprenez à personnaliser des dev box à l’aide d’un catalogue de tâches d’installation et d’un fichier de configuration pour installer des logiciels, configurer des paramètres, etc. Ces tâches sont appliquées à la nouvelle dev box dans la phase finale du processus de création. La personnalisation de Microsoft Dev Box est une approche « configuration en tant que code » pour personnaliser des dev box. Vous pouvez ajouter d’autres paramètres et logiciels sans avoir à créer une image de machine virtuelle personnalisée.

En utilisant des personnalisations, vous pouvez automatiser les étapes d’installation courantes, gagner du temps et réduire les risques d’erreurs de configuration. Voici quelques exemples de tâches d’installation :

  • Installation de logiciels avec les gestionnaires de package WinGet ou Chocolatey.
  • Définition des paramètres du système d’exploitation comme l’activation des fonctionnalités Windows.
  • Configuration d’applications telles que l’installation d’extensions Visual Studio.

Vous pouvez implémenter des personnalisations étape par étape, en commençant par une configuration simple mais fonctionnelle pour arriver à un processus automatisé. Les étapes sont les suivantes :

  1. Créer une dev box personnalisée à l’aide d’un exemple de fichier de configuration
  2. Écrire un fichier de configuration
  3. Partager un fichier de configuration à partir d’un référentiel de code
  4. Définir de nouvelles tâches dans un catalogue
  5. Utiliser des secrets à partir d’un coffre de clés Azure Key Vault

Important

Les personnalisations dans Microsoft Dev Box sont actuellement en PRÉVERSION. Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Scénarios de personnalisation spécifiques à l’équipe

Les personnalisations sont utiles partout où vous devez configurer des paramètres ou installer des logiciels. Vous pouvez également utiliser des personnalisations pour ajouter des extensions ou définir des paramètres de système d’exploitation courants, tels que l’activation des fonctionnalités Windows sur vos dev boxes lors de la dernière phase de création. Les responsables de l’équipe de développement peuvent utiliser des personnalisations pour préconfigurer les logiciels requis pour leur équipe de développement spécifique. Les responsables de l’équipe des développeurs peuvent créer des fichiers de configuration qui appliquent uniquement les tâches d’installation pertinentes pour leurs équipes. Cette méthode permet aux développeurs de créer leurs propres dev box qui conviennent le mieux à leur travail, sans avoir à demander au service informatique des modifications ou à attendre que l’équipe d’ingénierie crée une image de machine virtuelle personnalisée.

Que sont les tâches ?

Une tâche effectue une action spécifique, comme l’installation de logiciels. Chaque tâche se compose d’un ou plusieurs scripts PowerShell, ainsi que d’un fichier task.yaml qui fournit des paramètres et définit le mode d’exécution des scripts. Vous pouvez également inclure une commande PowerShell dans le fichier task.yaml. Vous pouvez stocker une collection de tâches d’installation organisées dans un catalogue attaché à votre centre de développement, avec chaque tâche dans un dossier séparé. Dev Box prend en charge l’utilisation d’un référentiel GitHub ou d’un référentiel Azure Repos en tant que catalogue et analyse un dossier spécifié du catalogue de manière récursive pour rechercher des définitions de tâches.

Microsoft fournit un catalogue de démarrage rapide pour vous aider à commencer à utiliser les personnalisations. Il contient un ensemble de tâches par défaut qui définissent des tâches d’installation courantes :

  • Installer des logiciels avec le gestionnaire de package WinGet ou Chocolatey
  • Cloner un référentiel en utilisant git-clone
  • Configurer des applications telles que l’installation d’extensions Visual Studio
  • Exécuter des scripts PowerShell

L’exemple suivant montre un catalogue avec les tâches choco, git-clone, install-vs-extension et PowerShell définies. Chaque dossier contient un fichier task.yaml et au moins un script PowerShell. Les fichiers Task.yaml mettent en cache les scripts et les paramètres d’entrée nécessaires pour les référencer à partir des fichiers de configuration.

Capture d’écran montrant un catalogue avec les tâches choco, git-clone, install-vs-extension et PowerShell définies, et un tasks.yaml pour chaque tâche.

Qu’est-ce qu’un fichier de configuration ?

Les personnalisations Dev Box utilisent un fichier au format yaml pour spécifier une liste de tâches à appliquer à partir du catalogue lors de la création d’une dev box. Ces fichiers config contiennent une ou plusieurs tâches, qui identifient la tâche de catalogue et fournissent des paramètres comme le nom du logiciel à installer. Le fichier de configuration est ensuite mis à la disposition des développeurs qui créent des dev box. L’exemple suivant utilise une tâche winget pour installer Visual Studio Code et une tâche git clone pour cloner un référentiel.

# From https://github.com/microsoft/devcenter-examples
$schema: 1.0
tasks:
  - name: winget
    parameters:
      package: Microsoft.VisualStudioCode
      runAsUser: true
  - name: git-clone
    description: Clone this repository into C:\Workspaces
    parameters:
      repositoryUrl: https://github.com/OrchardCMS/OrchardCore.git
      directory: C:\Workspaces

Autorisations requises pour configurer Microsoft Dev Box pour les personnalisations

Pour effectuer les actions requises visant à créer et appliquer des personnalisations à une dev box, vous devez avoir certaines autorisations. Le tableau suivant décrit les actions et les autorisations ou rôles dont vous avez besoin pour configurer les personnalisations.

Action Autorisation / Rôle
Attacher un catalogue à un centre de développement Ingénieur de plateforme avec l’autorisation Contributeur au centre de développement.
Utiliser le portail des développeurs pour charger et appliquer un fichier yaml lors de la création de dev box Utilisateur de dev box
Créer un fichier de configuration Tout le monde peut créer un fichier de configuration.
Ajouter des tâches à un catalogue Autorisation d’ajouter des éléments au référentiel hébergeant le catalogue.

Prérequis

Pour suivre les étapes décrites dans cet article, vous devez avoir un centre de développement configuré avec une définition de dev box, un pool de dev box et un projet de dev box.

Créer une dev box personnalisée à l’aide d’un exemple de fichier de configuration

Utilisez le catalogue de démarrage rapide par défaut et un exemple de fichier de configuration pour commencer à utiliser les personnalisations.

Attacher le catalogue de démarrage rapide

L’attachement d’un catalogue avec des tâches de personnalisation à un centre de développement signifie que vous pouvez créer une dev box dans ce centre et référencer les tâches de personnalisation à partir de ce catalogue. Microsoft fournit un exemple de référentiel sur GitHub avec un ensemble standard de tâches par défaut pour vous aider à commencer, appelé catalogue de démarrage rapide.

Pour attacher le catalogue de démarrage rapide au centre de développement :

  1. Connectez-vous au portail des développeurs Microsoft Dev Box.

  2. Dans le menu de gauche, sous Configuration de l’environnement, sélectionnez Catalogues, puis sélectionnez Ajouter.

  3. Dans Ajouter un catalogue, sélectionnez Tâches de personnalisation de dev box comme catalogue de démarrage rapide. Ensuite, cliquez sur Ajouter.

  4. Dans votre centre de développement, sélectionnez Catalogues et vérifiez que votre catalogue apparaît.

    Capture d’écran du portail Azure montrant le volet Ajouter un catalogue avec le catalogue de démarrage rapide de Microsoft et les tâches de personnalisation dev box mises en évidence.

    Si la connexion réussit, l’État affiche Synchronisation réussie.

Créer votre dev box personnalisée

Vous disposez maintenant d’un catalogue qui définit les tâches que vos développeurs peuvent utiliser. Vous pouvez référencer ces tâches à partir d’un fichier de configuration et créer une dev box personnalisée.

  1. Téléchargez un exemple de configuration yaml à partir du référentiel d’exemples. Cet exemple de configuration installe Visual Studio Code et clone le référentiel d’application web .NET OrchardCore dans votre dev box.

  2. Connectez-vous au portail des développeurs Microsoft Dev Box.

  3. Sélectionnez Nouvelle>Dev Box.

  4. Dans Ajouter une dev box, saisissez les valeurs suivantes :

    Paramètre Valeur
    Nom Entrez un nom pour votre dev box. Les noms de dev box doivent être uniques dans le projet.
    Projet Sélectionnez un projet dans la liste déroulante.
    Pool de dev box Sélectionnez un pool dans la liste déroulante, qui inclut tous les pools de dev box pour ce projet. Choisissez un pool de dev box près de vous pour une latence minimale.
    Fichiers de personnalisation chargés Sélectionnez Charger un fichier de personnalisation et chargez le fichier de configuration que vous avez téléchargé à l’étape 1.

    Capture d’écran montrant les options de personnalisation de la dev box dans le portail des développeurs, avec les fichiers de personnalisation chargés mis en évidence.

  5. Sélectionnez Créer.

Une fois que le processus de création est terminé, nodejs et Visual Studio Code sont installés dans la nouvelle dev box.

Pour plus d’exemples, consultez le référentiel d’exemples de centre de développement sur GitHub.

Création d’un fichier de configuration

Vous pouvez définir de nouvelles tâches à appliquer à vos dev box en créant votre propre fichier de configuration. Vous pouvez tester votre fichier de configuration dans Visual Studio Code et apporter toutes les modifications requises sans avoir à créer une dev box distincte pour chaque test.

Avant de pouvoir créer et tester votre propre fichier de configuration, vous devez disposer d’un catalogue qui contient des tâches attachées au centre de développement. Vous pouvez utiliser une extension Visual Studio Code pour découvrir les tâches dans le catalogue attaché.

  1. Créez une Dev Box (ou utilisez une Dev Box existante) pour les tests.

  2. Dans la dev box de test, installez Visual Studio Code, puis installez l’extension VS Code Dev Box v1.2.2.

  3. Téléchargez un exemple de fichier de configuration yaml à partir du référentiel d’exemples et ouvrez-le dans Visual Studio Code.

  4. Découvrez les tâches disponibles dans le catalogue en utilisant la palette de commandes. Dans Afficher>Palette de commandes, sélectionnez Dev Box : Lister les tâches disponibles pour cette dev box.

    Capture d’écran de Visual Studio Code montrant la palette de commandes avec l'option Dev Box Lister les tâches disponibles pour cette dev box mise en évidence.

  5. Testez la configuration dans Visual Studio Code en utilisant la palette de commandes/f5. Dans Affichage>Palette de commandes, sélectionnez Dev Box : Appliquer des tâches de personnalisation.

    Capture d’écran de Visual Studio Code montrant la palette de commandes avec l'option Dev Box Appliquer des tâches de personnalisation mise en évidence.

  6. Le fichier de configuration s’exécute immédiatement, en appliquant les tâches spécifiées à votre dev box de test. Inspectez les changements et recherchez dans le terminal Visual Studio Code d’éventuels avertissements ou erreurs générés pendant l’exécution des tâches.

  7. Lorsque le fichier de configuration s’exécute correctement, partagez-le avec les développeurs pour qu’ils le chargent lorsqu’ils créent une dev box.

Remarque

La possibilité de créer et de charger un fichier ne présente pas un risque de sécurité, car le fichier chargé ne peut appliquer que les paramètres définis dans le catalogue attaché au centre de développement. Si la tâche n’y est pas définie, le développeur obtient une erreur indiquant que la tâche n’est pas définie.

Partager un fichier de configuration à partir d’un référentiel de code

Mettez facilement votre fichier de configuration à la disposition de vos développeurs en le nommant workload.yaml et en le chargeant dans un référentiel accessible aux développeurs, généralement leur référentiel de codage. Lorsque vous créez une dev box, vous spécifiez l’URL du référentiel et le fichier de configuration est cloné avec le reste du référentiel. La dev box recherche dans le référentiel un fichier nommé workload.yaml et, le cas échéant, effectue les tâches listées. Cette configuration offre un moyen fluide d’effectuer des personnalisations sur une dev box.

  1. Créez un fichier de configuration nommé workload.yaml.

  2. Ajoutez le fichier config à la racine d’un référentiel Azure Repos privé avec votre code et validez-le.

  3. Connectez-vous au portail des développeurs Microsoft Dev Box.

  4. Sélectionnez Nouvelle>Dev Box.

  5. Dans Ajouter une dev box, saisissez les valeurs suivantes :

    Paramètre Valeur
    Nom Entrez un nom pour votre dev box. Les noms de dev box doivent être uniques dans le projet.
    Projet Sélectionnez un projet dans la liste déroulante.
    Pool de dev box Sélectionnez un pool dans la liste déroulante, qui inclut tous les pools de dev box pour ce projet. Choisissez un pool de dev box près de vous pour une latence minimale.
    URL de clonage du référentiel Entrez l’URL du référentiel qui contient le fichier de configuration et votre code.

    Capture d’écran montrant les options de personnalisation de la dev box dans le portail des développeurs, avec l'option URL de clonage du dépôt mise en évidence.

  6. Sélectionnez Créer.

La nouvelle dev box contient le référentiel cloné et toutes les instructions du fichier de configuration appliquées.

Définir de nouvelles tâches dans un catalogue

La création de tâches dans un catalogue vous permet de créer des personnalisations adaptées à vos équipes de développement et d’ajouter des garde-fous autour des configurations possibles.

  1. Créez un référentiel pour stocker vos tâches.

    Si vous le souhaitez, vous pouvez faire une copie du catalogue de démarrage rapide dans votre propre référentiel à utiliser comme point de départ.

  2. Créez des tâches dans votre référentiel en modifiant des scripts PowerShell existants ou en créant de nouveaux scripts.

    Pour commencer à créer des tâches, vous pouvez utiliser les exemples fournis dans le référentiel d’exemples de centre de développement sur GitHub et la documentation PowerShell.

  3. Attachez votre référentiel à votre centre de développement en tant que catalogue.

  4. Créez un fichier de configuration pour ces tâches en suivant les étapes décrites dans Écrire un fichier de configuration.

Utiliser des secrets à partir d’un coffre de clés Azure Key Vault

Vous pouvez utiliser des secrets à partir de votre coffre de clés Azure Key Vault dans vos configurations yaml pour cloner des dépôts privés ou avec toute tâche personnalisée que vous créez qui nécessite un jeton d’accès.

Pour configurer vos secrets Key Vault à utiliser dans vos configurations yaml,

  1. Assurez-vous que l’identité managée de votre projet de centre de développement a le rôle Lecteur Key Vault et le rôle Utilisateur des secrets Key Vault sur votre Key Vault.

  2. Accordez le rôle Utilisateur de secrets pour le secret Key Vault à chaque utilisateur ou groupe d’utilisateurs qui doit pouvoir utiliser le secret lors de la personnalisation d’une dev box. L’utilisateur ou le groupe auquel le rôle est accordé doit inclure l’identité managée du centre de développement, votre propre compte d’utilisateur et tout utilisateur ou groupe qui a besoin du secret pendant la personnalisation d’une dev box.

Pour plus d’informations, consultez l’article suivant :

Vous pouvez référencer le secret dans votre configuration yaml au format suivant, en utilisant la tâche git-clone comme exemple :

$schema: "1.0"
tasks:
   name: git-clone
   description: Clone this repository into C:\Workspaces
      parameters:
         repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
         directory: C:\Workspaces
         pat: '{{KEY_VAULT_SECRET_URI}}'

Si vous souhaitez cloner un dépôt Azure DevOps privé (Azure Repos), vous n’avez pas besoin de configurer un secret dans Key Vault. Au lieu de cela, vous pouvez utiliser {{ado}} ou {{ado://your-ado-organization-name}} comme paramètre. Cela extrait, en votre nom, un jeton d’accès qui dispose d’une autorisation en lecture seule sur votre dépôt lors de la création d’une dev box. La tâche git-clone dans le catalogue de démarrage rapide utilise ce jeton d’accès pour cloner votre dépôt. Voici un exemple :

tasks:
   name: git-clone
   description: Clone this repository into C:\Workspaces
      parameters:
         repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
         directory: C:\Workspaces
         pat: '{{ado://YOUR_ADO_ORG}}'

Si les stratégies de votre organisation vous obligent à maintenir votre Key Vault privé à partir d’Internet, vous pouvez définir votre Key Vault pour autoriser les services Microsoft approuvés à contourner votre règle de pare-feu.

Capture d’écran montrant la configuration du pare-feu Azure avec l'option Autoriser les services Microsoft approuvés à contourner ce pare-feu sélectionnée.