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 :
- Créer une dev box personnalisée à l’aide d’un exemple de fichier de configuration
- Écrire un fichier de configuration
- Partager un fichier de configuration à partir d’un référentiel de code
- Définir de nouvelles tâches dans un catalogue
- 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
- 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.
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 :
Connectez-vous au portail des développeurs Microsoft Dev Box.
Dans le menu de gauche, sous Configuration de l’environnement, sélectionnez Catalogues, puis sélectionnez Ajouter.
Dans Ajouter un catalogue, sélectionnez Tâches de personnalisation de dev box comme catalogue de démarrage rapide. Ensuite, cliquez sur Ajouter.
Dans votre centre de développement, sélectionnez Catalogues et vérifiez que votre catalogue apparaît.
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.
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.
Connectez-vous au portail des développeurs Microsoft Dev Box.
Sélectionnez Nouvelle>Dev Box.
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. Dans la page Personnaliser votre dev box, sélectionnez Charger un fichier de personnalisation, puis Ajouter des personnalisations à partir d’un fichier.
Accédez à l’emplacement de l’exemple de fichier config yaml que vous avez téléchargé, puis sélectionnez Ouvrir.
Vérifiez que le fichier config est répertorié sous Charger un ou plusieurs fichiers de personnalisation, puis sélectionnez Valider.
Une fois le fichier config validé par Dev Box, sélectionnez Continuer.
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.
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é.
Créez une Dev Box (ou utilisez une Dev Box existante) pour les tests.
Dans la dev box de test, installez Visual Studio Code, puis installez l’extension VS Code Dev Box v1.2.2.
Téléchargez un exemple de fichier de configuration yaml à partir du référentiel d’exemples et ouvrez-le dans Visual Studio Code.
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.
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.
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.
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.
Créez un fichier de configuration nommé workload.yaml.
Ajoutez le fichier config à la racine d’un référentiel Azure Repos privé avec votre code et validez-le.
Connectez-vous au portail des développeurs Microsoft Dev Box.
Sélectionnez Nouvelle>Dev Box.
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. 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.
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 zone de développement (dev box) contient toutes les instructions du fichier de configuration et les référentiels demandés sont clonés.
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.
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.
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.
Attachez votre référentiel à votre centre de développement en tant que catalogue.
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,
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.
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 :
- Découvrez comment configurer une identité managée pour un centre de développement.
- Découvrez comment accorder à l’identité managée l’accès au secret du coffre de clés.
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.
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.