Partager via


Personnalisations de Microsoft Dev Box

La prise en main des développeurs sur un nouveau projet ou avec une nouvelle équipe est souvent complexe et fastidieuse. La fonctionnalité de personnalisations de Microsoft Dev Box vous permet de simplifier la configuration de l’environnement de développement. Avec les personnalisations, vous pouvez configurer des stations de travail prêtes à coder avec les applications, outils, référentiels, bibliothèques de code, packages et scripts de génération nécessaires.

Les personnalisations dev Box vous permettent de :

  • Installez les outils et applications nécessaires.
  • Appliquer des stratégies de sécurité organisationnelles.
  • Assurez la cohérence entre les environnements de développement.

Dev Box offre deux façons d’utiliser des personnalisations :

  • Personnalisations d’équipe : permet de créer une configuration partagée standard pour une équipe de développeurs au lieu de créer plusieurs images standard ou dorées pour vos équipes.
  • Personnalisations des utilisateurs : utilisées par les développeurs pour créer des configurations pour leurs préférences personnelles. Avec les personnalisations utilisateur, les développeurs peuvent stocker leurs configurations dans des fichiers et les exécuter lorsqu’ils créent des zones de développement. Les personnalisations fournissent une cohérence dans toutes les zones de développement.
Caractéristique Personnalisations d’équipe Personnalisations des utilisateurs
Configurer sur Pool de dev box Boîte de développement
Les personnalisations s’appliquent à Toutes les zones de développement dans le pool Boîte de développement individuelle
Facilement partageable Oui Non
Nom du fichier de personnalisations imagedefinition.yaml myfilename.yaml
Provenance Catalogue ou référentiel personnel Chargement ou à partir d’un dépôt personnel
Prend en charge les secrets du coffre de clés Oui Oui

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

Les personnalisations dev Box utilisent un fichier au format YAML pour spécifier une liste de tâches à appliquer à partir du centre de développement ou d’un catalogue lorsque les développeurs créent une zone de développement. Ces tâches identifient la tâche du catalogue et fournissent des paramètres comme le nom du logiciel à installer. Les développeurs peuvent créer leurs propres fichiers de personnalisation ou utiliser un fichier de personnalisation partagé.

Vous pouvez utiliser des secrets à partir de votre coffre de clés Azure dans votre fichier de personnalisation pour cloner des dépôts privés. Vous pouvez également les utiliser avec n’importe quelle tâche personnalisée que vous créez qui nécessite un jeton d’accès.

Que sont les tâches ?

Les tâches de personnalisation dev Box sont des wrappers pour les scripts PowerShell. Vous les utilisez pour définir des composants réutilisables que vos équipes peuvent utiliser dans leurs personnalisations. Les tâches WinGet et PowerShell sont disponibles via la plateforme. Vous pouvez en ajouter de nouveaux via un catalogue. Les tâches peuvent s’exécuter dans un contexte système ou un contexte utilisateur après la connexion.

  • Les administrateurs de projet définissent des personnalisations d’équipe, qui peuvent utiliser des tâches personnalisées et intégrées.
  • Les personnalisations utilisateur peuvent utiliser des tâches système uniquement si l’utilisateur est administrateur ou si les tâches sont préapprouvées par le biais d’un catalogue. Les utilisateurs de la zone de développement standard ne peuvent pas exécuter de tâches PowerShell et WinGet intégrées dans un contexte système, ce qui empêche l’escalade des privilèges.

Lorsque vous créez des tâches, déterminez celles qui doivent s’exécuter dans un contexte système et celles qui peuvent s’exécuter dans un contexte utilisateur après la connexion.

Vous pouvez utiliser les tâches système et utilisateur dans votre fichier de définition d’image. La section tâches du fichier de définition d’image est divisée en sections tâches système et tâches utilisateur, qui partagent les mêmes paramètres en fonction des définitions de tâches dans votre catalogue.

  • Tâches système : ces tâches s’exécutent comme LocalSystem au cours de la phase d’approvisionnement de la zone de développement. Elles sont généralement utilisées pour les configurations au niveau du système, telles que l’installation de logiciels ou la configuration des paramètres système qui nécessitent des privilèges d’administration.
  • Tâches utilisateur : ces tâches s’exécutent en tant qu’utilisateur après la première connexion de l’utilisateur à la zone de développement. Elles sont généralement utilisées pour les configurations au niveau de l’utilisateur, telles que l’installation d’applications spécifiques à l’utilisateur ou la configuration des paramètres utilisateur dans le contexte utilisateur. Par exemple, les utilisateurs préfèrent souvent installer Python et Visual Studio Code dans le contexte utilisateur au lieu du système. Placez les tâches WinGet dans la userTasks section pour obtenir de meilleurs résultats lorsqu’elles ne fonctionnent pas sous les tâches.

Les utilisateurs standard qui configurent des personnalisations utilisateur peuvent utiliser uniquement des tâches utilisateur. Ils ne peuvent pas utiliser les tâches système.

Différences entre les personnalisations d’équipe et les personnalisations des utilisateurs

Les personnalisations de l’équipe Dev Box permettent aux responsables de l’équipe de développement et aux administrateurs informatiques de préconfigurer les fichiers de personnalisation pour les pools de box de développement. Les personnalisations éliminent la nécessité pour les développeurs d’effectuer une configuration manuelle.

Nous vous recommandons d’utiliser des personnalisations d’équipe pour sécuriser et normaliser les déploiements Dev Box pour une équipe. Le partage de fichiers YAML courants entre les équipes de développement peut être inefficace, entraîner des erreurs et violer les stratégies de conformité.

En plus des personnalisations d’équipe, les développeurs individuels peuvent charger un fichier de personnalisation lorsqu’ils créent leur zone de développement pour contrôler l’environnement de développement. Les développeurs doivent utiliser des personnalisations individuelles pour les paramètres personnels et les applications uniquement.

Comment fonctionnent les personnalisations ?

Les personnalisations d’équipe et les personnalisations utilisateur sont des fichiers YAML qui spécifient une liste de tâches à appliquer lorsque vous créez une zone de développement. Sélectionnez l’onglet approprié pour en savoir plus sur le fonctionnement de chaque type de personnalisation.

Comment fonctionnent les personnalisations d’équipe ?

Vous pouvez utiliser les personnalisations d’équipe pour définir une configuration Dev Box partagée pour chacune de vos équipes de développement sans devoir investir dans la configuration d’une solution de création d’images, comme Packer ou des modèles d’image de machine virtuelle Azure. Les personnalisations d’équipe offrent une alternative légère qui permet aux équipes d’ingénierie de plateforme centrale de déléguer la gestion des configurations Dev Box aux équipes qui les utilisent.

Les personnalisations d’équipe offrent également un moyen intégré d’optimiser les personnalisations Dev Box de votre équipe en les aplatissant dans une image personnalisée. Vous utilisez le même fichier de personnalisation, sans avoir à gérer l’infrastructure ajoutée ou à gérer les modèles d’image.

La configuration des personnalisations de l’équipe Dev Box pour votre organisation nécessite une planification minutieuse et une prise de décision éclairée. Le diagramme suivant donne une vue d’ensemble du processus et met en évidence les points de décision clés.

Diagramme montrant le flux de travail pour les personnalisations de l’équipe Dev Box, y compris les étapes de planification, de configuration et de déploiement de personnalisations.

Configurer Dev Box pour les personnalisations d’équipe

Pour configurer Dev Box pour prendre en charge les personnalisations d’équipe, procédez comme suit :

  1. Configurez votre centre de développement :
    1. Activez les catalogues de niveau projet.
    2. Attribuez des autorisations aux administrateurs de projets.
  2. Déterminez s’il faut utiliser un catalogue avec des composants réutilisables personnalisés :
    • Intégré (fourni par la plateforme) :
      1. Utilisez des tâches intégrées PowerShell ou WinGet (commence par ~/). Nous vous recommandons de commencer par les tâches intégrées.
    • Votre propre catalogue :
      1. Héberger dans Azure Repos ou GitHub.
      2. Ajouter des tâches.
      3. Attachez-vous à un centre de développement.
  3. Créez un fichier de personnalisation YAML appelé imagedefinition.yaml.
  4. Spécifiez une image dans un pool de dev box :
    1. Créez ou modifiez un pool de dev box.
    2. Spécifiez imagedefinition.yaml comme définition d’image.
  5. Choisissez comment utiliser la définition d’image :
    • Exécuter les tâches de la définition d’image au moment de la création de chaque dev box.
    • Optimisez votre définition d’image dans une image personnalisée.
  6. Créez votre dev box à partir du pool configuré à l’aide du portail des développeurs.

Pour en savoir plus sur la personnalisation de l’équipe et l’écriture de définitions d’images, consultez Configurer les personnalisations d’équipe. Ensuite, pour savoir comment optimiser votre définition d’image dans une image personnalisée, consultez Configurer l’imagerie du centre de développement.