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

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, installer des logiciels, 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 box 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 DevOps 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 :

  • Installation de logiciels avec les gestionnaires de package WinGet ou Chocolatey
  • Clonage d’un référentiel en utilisant git-clone
  • Configuration d’applications telles que l’installation d’extensions Visual Studio
  • Exécution de scripts PowerShell

L’exemple suivant montre un catalogue avec les tâches choco, git-clone, install-vs-extension et PowerShell définies. Notez que 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.

Screenshot showing a catalog with choco, git-clone, install-vs-extension, and PowerShell tasks defined, with a tasks.yaml for each task.

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 de configuration 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.

    Screenshot of the Azure portal showing the Add catalog pane with Microsoft's quick start catalog and Dev box customization tasks highlighted.

    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, et 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.

    Screenshot showing the dev box customization options in the developer portal with Uploaded customization files highlighted.

  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.

    Screenshot of Visual Studio Code showing the command palette with Dev Box List available tasks for this dev box highlighted.

  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.

    Screenshot of Visual Studio Code showing the command palette with Dev Box Apply customizations tasks highlighted.

  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 de configuration à la racine d’un référentiel Azure DevOps 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.

    Screenshot showing the dev box customization options in the developer portal with Repository clone URL highlighted.

  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.