Partager via


Créer des personnalisations de dev box réutilisables

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

Les personnalisations sont utiles pour les équipes de développement. Les responsables d’équipes de développement peuvent utiliser des personnalisations pour préconfigurer les logiciels requis pour leur équipe de développement et créer des fichiers config qui appliquent uniquement les tâches adaptées à leurs équipes. Cette méthode permet aux développeurs de créer des 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.

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 :

  • Installation de logiciels avec le gestionnaire de package WinGet.
  • 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 adopter 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.

Prérequis

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.

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, entrez les valeurs suivantes, puis sélectionnez Continuer :

    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.
    Appliquer des personnalisations Sélectionnez Appliquer des personnalisations.

    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. Dans la page Personnaliser votre dev box, sélectionnez Charger un fichier de personnalisation, puis Ajouter des personnalisations à partir d’un fichier.

    Capture d’écran montrant la page Personnaliser votre dev box, avec les options Charger un fichier de personnalisation et Ajouter des personnalisations à partir d’un fichier mises en évidence.

  6. Accédez à l’emplacement de l’exemple de fichier config yaml que vous avez téléchargé, puis sélectionnez Ouvrir.

  7. Vérifiez que le fichier config est répertorié sous Charger un ou plusieurs fichiers de personnalisation, puis sélectionnez Valider.

    Capture d’écran montrant la page Personnaliser votre zone de développement, avec le fichier de personnalisation chargé répertorié et l’option Valider mise en évidence.

  8. Une fois le fichier config validé par Dev Box, sélectionnez Continuer.

    Capture d’écran montrant le message de réussite de la validation de la tâche de personnalisation, avec Continuer mis en évidence.

  9. Dans la page Résumé de la création de la dev box, Dev Box affiche les tâches qu’elle appliquera. Sélectionnez Créer.

    Capture d’écran montrant la page Résumé de la création de la dev box, avec le bouton Créer mis en évidence.

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.

Conseil

Au lieu de passer par le portail des développeurs, vous pouvez utiliser Dev Home pour créer des dev box, les personnaliser et vous y connecter. Dev Home est une application Windows native qui fournit un emplacement unique pour gérer vos dev box. Pour en savoir plus sur Dev Home, consultez Créer des personnalisations de dev box réutilisables avec Dev Home.

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

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 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 courantes :

  • Installation de logiciels avec le gestionnaire de package WinGet.
  • Déploiement de la configuration DSC (Desired State Configuration) à l’aide de la configuration WinGet.
  • 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.

Personnaliser votre dev box à l’aide de fichiers WinGet Configuration existants

WinGet Configuration adopte une approche de configuration en tant que code pour définir les ensembles uniques de logiciels et de paramètres de configuration requis pour que votre environnement Windows soit dans un état « prêt à coder ». Vous pouvez également utiliser ces fichiers config pour configurer une dev box à l’aide d’une tâche WinGet incluse dans le catalogue de démarrage rapide fourni par Microsoft mentionné précédemment.

L’exemple suivant montre un fichier de personnalisation de dev box qui appelle un fichier DSC WinGet existant.

tasks:
    - name: winget
      parameters:
          configure: "projectConfiguration.dsc.yaml"

Pour en savoir plus sur WinGet Configuration, consultez WinGet Configuration.

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.

Conseil

Au lieu de passer par Visual Studio Code, vous pouvez utiliser Dev Home pour créer et valider un fichier config dans une interface utilisateur graphique. Pour en savoir plus sur Dev Home, consultez Créer des personnalisations de dev box réutilisables avec Dev Home.

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, entrez les valeurs suivantes, puis sélectionnez Continuer :

    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.
    Appliquer des personnalisations Sélectionnez Appliquer des personnalisations.

    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.

  6. Dans la page Personnaliser votre dev box, sélectionnez Choisir un fichier de personnalisation à partir d’un référentiel. Ensuite, dans URL du référentiel Azure DevOps, entrez l’URL du référentiel qui héberge le fichier config à appliquer, puis sélectionnez Continuer.

    Capture d’écran montrant la page Personnaliser votre dev box, avec les options Choisir un fichier de personnalisation à partir d’un référentiel et URL du référentiel Azure DevOps.

  7. Dans la page Résumé de la création de la dev box, Dev Box affiche les tâches qu’elle appliquera. 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.

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 référentiel 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.

Pour savoir comment autoriser les services Microsoft approuvés à contourner le pare-feu, consultez Configurer les paramètres de mise en réseau Azure Key Vault.