Erstellen wiederverwendbarer Dev-Box-Anpassungen
Die Anpassung von Microsoft Dev Box ist ein Ansatz vom Typ „Konfiguration als Code“ zum Anpassen von Dev-Boxen. In diesem Artikel erfahren Sie, wie Sie Dev-Boxen mithilfe eines Aufgabenkatalogs und einer Konfigurationsdatei anpassen, um Software zu installieren, Einstellungen zu konfigurieren u. v. m. Diese Tasks werden in der letzten Phase des Erstellungsprozesses auf die neue Dev-Box angewendet. Sie können Einstellungen und Software hinzufügen, ohne ein benutzerdefiniertes VM-Image erstellen zu müssen.
Anpassungen sind nützlich für Entwicklungsteams. Die Leitung von Entwicklungsteams kann Anpassungen verwenden, um die für sein Entwicklungsteam erforderliche Software vorzukonfigurieren und Konfigurationsdateien zu erstellen, die nur auf die ihre Teams relevanten Aufgaben angewandt werden. Mit dieser Methode können Entwicklerinnen und Entwickler eigene Dev-Boxen erstellen, die optimal auf ihre Arbeit abgestimmt sind, ohne die IT-Abteilung um Änderungen zu bitten oder darauf zu warten, dass das Entwicklungsteam ein benutzerdefiniertes VM-Image erstellt.
Mithilfe von Anpassungen können Sie allgemeine Setupschritte automatisieren, Zeit sparen und die Wahrscheinlichkeit von Konfigurationsfehlern verringern. Beispiele für Aufgaben:
- Installieren von Software mit dem WinGet-Paket-Manager
- Festlegen von Betriebssystemeinstellungen, etwa Aktivieren von Windows-Funktionen
- Konfigurieren von Anwendungen, etwa Installation von Visual Studio-Erweiterungen
Sie können Anpassungen schrittweise anwenden und so von einer einfachen, aber funktionalen Konfiguration zu einem automatisierten Prozess gelangen. Diese Phasen lauten:
- Erstellen einer benutzerdefinierten Dev-Box mithilfe einer Beispielkonfigurationsdatei
- Schreiben einer Konfigurationsdatei
- Freigeben einer Konfigurationsdatei aus einem Coderepository
- Definieren neuer Tasks in einem Katalog
- Verwenden von Geheimnissen aus einem Azure Key Vault
Wichtig
Anpassungen in Microsoft Dev Box befinden sich derzeit in der Vorschauphase. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.
Voraussetzungen
- Um die Schritte in diesem Artikel auszuführen, müssen Sie ein Dev Center mit einer Dev-Box-Definition, einem Dev-Box-Pool und einem Dev-Box-Projekt konfiguriert haben.
Erforderliche Berechtigungen zum Konfigurieren von Microsoft Dev Box für Anpassungen
Um die erforderlichen Aktionen zum Erstellen und Anwenden von Anpassungen für eine Dev-Box auszuführen, benötigen Sie bestimmte Berechtigungen. In der folgenden Tabelle werden die Aktionen und Berechtigungen oder Rollen beschrieben, die Sie zum Konfigurieren von Anpassungen benötigen.
Aktion | Berechtigung/Rolle |
---|---|
Anfügen eines Katalogs an ein Dev Center | Plattformtechniker mit der Berechtigung „Mitwirkender“ für das Dev Center |
Verwenden des Entwicklerportals zum Hochladen und Anwenden einer YAML-Datei während der Erstellung von Dev-Boxen | Dev-Box-Benutzer |
Erstellen einer Konfigurationsdatei | Jeder kann eine Konfigurationsdatei erstellen. |
Hinzufügen von Tasks zu einem Katalog | Berechtigung zum Hinzufügen zum Repository, das den Katalog hostet |
Erstellen einer benutzerdefinierten Dev-Box mithilfe einer Beispielkonfigurationsdatei
Verwenden Sie den Standardmäßigen Schnellstartkatalog und eine Beispielkonfigurationsdatei, um erste Schritte mit Anpassungen auszuführen.
Anfügen des Schnellstartkatalogs
Das Anfügen eines Katalogs mit Anpassungstasks an ein Dev Center bedeutet, dass Sie in diesem Dev Center eine Dev-Box erstellen und auf die Anpassungstasks aus diesem Katalog verweisen können. Microsoft stellt ein Beispielrepository auf GitHub mit einem Standardsatz von standardmäßigen Tasks bereit, die Ihnen bei den ersten Schritten helfen. Sie werden als Schnellstartkatalog bezeichnet.
So fügen Sie den Schnellstartkatalog an das Dev Center an
Melden Sie sich beim Microsoft Dev Box-Entwicklerportal an.
Wählen Sie im linken Menü unter Umgebungskonfiguration die Option Kataloge und dann Hinzufügen aus.
Wählen Sie unter Katalog hinzufügen die Option Dev-Box-Anpassungstasks als Schnellstartkatalog aus. Klicken Sie anschließend auf Hinzufügen.
Wählen Sie im Dev Center Kataloge aus, und vergewissern Sie sich, dass Ihr Katalog angezeigt wird.
Wenn die Verbindung erfolgreich ist, wird der Status als Synchronisierung erfolgreich angezeigt.
Erstellen der benutzerdefinierten Dev-Box
Jetzt verfügen Sie über einen Katalog, der die Aufgaben definiert, die Ihre Entwickler verwenden können. Sie können auf diese Aufgaben in einer Konfigurationsdatei verweisen und eine angepasste Dev-Box erstellen.
Laden Sie eine Beispiel-YAML-Konfiguration aus dem Beispielrepository herunter. Diese Beispielkonfiguration installiert Visual Studio Code und klont das .NET-Web-App-Repository „OrchardCore „ in Ihrer Dev-Box.
Melden Sie sich beim Microsoft Dev Box-Entwicklerportal an.
Wählen Sie Neu>Dev-Box aus.
Geben Sie in Dev-Box hinzufügen die folgenden Werte ein, und wählen Sie dann Weiter aus:
Einstellung Wert Name Geben Sie einen Namen für die Dev-Box ein. Dev-Box-Namen müssen innerhalb eines Projekts eindeutig sein. Projekt Wählen Sie ein Projekt aus der Dropdownliste aus. Dev-Box-Pool Wählen Sie einen Pool in der Dropdownliste aus, die alle Dev-Box-Pools für dieses Projekt enthält. Wählen Sie für die geringste Latenz einen Dev-Box-Pool in der Nähe aus. Anwenden von Anpassungen Wählen Sie Anpassungen anwenden aus. Wählen Sie auf der Seite Dev-Box anpassen die Option Anpassungsdatei hochladen und dann Anpassungen aus Datei hinzufügen aus.
Navigieren Sie zum Speicherort der heruntergeladenen YAML-Beispielkonfigurationsdatei, und wählen Sie dann Öffnen aus.
Stellen Sie sicher, dass die Konfigurationsdatei unter Anpassungsdateien hochladen aufgeführt ist, und wählen Sie dann Überprüfen aus.
Nachdem Dev Box die Konfigurationsdatei überprüft hat, wählen Sie Weiter aus.
Dev Box zeigt auf der Zusammenfassungsseite zum Erstellen der Dev-Box die Aufgaben an, die angewandt werden. Klicken Sie auf Erstellen.
Nach Abschluss des Erstellungsprozesses sind in der neuen Dev-Box nodejs und Visual Studio Code installiert.
Weitere Beispiele finden Sie im Dev Center-Beispielrepository auf GitHub.
Tipp
Als Alternative zum Entwicklerportal können Sie Dev Home verwenden, um Ihre Dev-Boxen zu erstellen, anzupassen und zu verbinden. Dev Home ist eine native Windows-App, die einen zentralen Ort zum Verwalten Ihrer Dev-Boxen bietet. Weitere Informationen zu Dev Home finden Sie unter Erstellen wiederverwendbarer Dev-Box-Anpassungen mit Dev Home.
Was ist eine Konfigurationsdatei?
Dev Box-Anpassungen nutzen eine formatierte YAML-Datei, um eine Liste von Tasks anzugeben, die beim Erstellen einer neuen Dev-Box aus dem Katalog angewendet werden sollen. Diese Konfigurationsdateien enthalten „Tasks“, die den Katalogtask identifizieren und Parameter wie den Namen der zu installierenden Software bereitstellen. Die Konfigurationsdatei wird dann den Entwicklern zur Verfügung gestellt, die neue Dev-Boxen erstellen. Im folgenden Beispiel wird ein winget-Task zum Installieren von Visual Studio Code und ein git clone
-Task zum Klonen eines Repositorys verwendet:
# 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
Was sind Tasks?
Ein Task führt eine bestimmte Aktion aus, z. B. die Installation von Software. Jeder Task besteht aus einem oder mehreren PowerShell-Skripts sowie der Datei task.yaml, die Parameter bereitstellt und definiert, wie die Skripts ausgeführt werden. Sie können auch einen PowerShell-Befehl in die Datei „task.yaml“ einschließen. Sie können eine Sammlung kuratierter Aufgaben in einem Katalog speichern, der Ihrem Dev Center zugeordnet ist, wobei jede Aufgabe in einem separaten Ordner enthalten ist. Dev Box unterstützt die Verwendung eines GitHub-Repositorys oder eines Azure DevOps-Repositorys als Katalog und scannt einen angegebenen Ordner des Katalogs rekursiv, um Aufgabendefinitionen zu finden.
Microsoft stellt einen Schnellstartkatalog zur Verfügung, der Ihnen bei den ersten Schritten mit Anpassungen hilft. Er enthält einen Standardsatz von allgemeinen Aufgaben:
- Installieren von Software mit dem WinGet-Paket-Manager
- Bereitstellen der DSC (Desired State Configuration) mithilfe der WinGet-Konfiguration
- Klonen eines Repositorys mithilfe von „git-clone“
- Konfigurieren von Anwendungen, etwa Installation von Visual Studio-Erweiterungen
- Ausführen von PowerShell-Skripts
Anpassen Ihrer Dev-Box mithilfe vorhandener WinGet-Konfigurationsdateien
Eine WinGet-Konfiguration verwendet einen Config-as-Code-Ansatz (Konfiguration als Code), um die eindeutigen Software- und Konfigurationseinstellungen zu definieren, die erforderlich sind, um Ihre Windows-Umgebung in einem programmierbereiten Zustand zu versetzen. Diese Konfigurationsdateien können auch verwendet werden, um eine Dev-Box einzurichten, indem Sie eine WinGet-Aufgabe verwenden, die im zuvor erwähnten Schnellstartkatalog von Microsoft enthalten ist.
Das folgende Beispiel zeigt eine Dev-Box-Anpassungsdatei, die eine vorhandene WinGet-DSC-Datei aufruft.
tasks:
- name: winget
parameters:
configure: "projectConfiguration.dsc.yaml"
Weitere Informationen zur WinGet-Konfiguration finden Sie unter WinGet-Konfiguration.
Schreiben einer Konfigurationsdatei
Sie können neue Tasks definieren, die auf Ihre Dev-Boxen angewendet werden sollen, indem Sie eine eigene Konfigurationsdatei erstellen. Sie können Ihre Konfigurationsdatei in Visual Studio Code testen und alle erforderlichen Änderungen vornehmen, ohne für jeden Test eine separate Dev-Box erstellen zu müssen.
Bevor Sie eine eigene Konfigurationsdatei erstellen und testen können, muss ein Katalog vorhanden sein, der dem Dev Center zugeordnete Tasks enthält. Sie können eine Visual Studio Code-Erweiterung verwenden, um die Tasks im angefügten Katalog zu ermitteln.
Erstellen Sie eine Dev-Box (oder verwenden Sie eine vorhandene Dev-Box) zum Testen.
Installieren Sie Visual Studio Code in der Dev-Box und dann die VS Code-Erweiterung für Dev Box v1.2.2.
Laden Sie eine Beispiel-YAML-Konfigurationsdatei aus dem Beispielrepository herunter, und öffnen Sie sie in Visual Studio Code.
Erkunden Sie über die Befehlspalette Tasks, die im Katalog verfügbar sind. Wählen Sie unter Ansicht>Befehlspalette die Option Dev-Box: Verfügbare Tasks für diese Dev-Box auflisten aus.
Testen Sie die Konfiguration in Visual Studio Code mithilfe von F5/der Befehlspalette. Wählen Sie unter Ansicht>Befehlspalette die Option Dev-Box aus: Anpassungstasks anwenden aus.
Die Konfigurationsdatei wird sofort ausgeführt und wendet die angegebenen Tasks auf die Test-Dev-Box an. Sehen Sie sich die Änderungen an, und überprüfen Sie das Visual Studio Code-Terminal auf Fehler oder Warnungen, die während der Taskausführung generiert wurden.
Wenn die Konfigurationsdatei erfolgreich ausgeführt wird, geben Sie sie für Entwickler frei, damit sie sie beim Erstellen einer neuen Dev-Box hochladen können.
Tipp
Als Alternative zu Visual Studio Code können Sie Dev Home verwenden, um eine Konfigurationsdatei auf einer grafischen Benutzeroberfläche zu erstellen und zu überprüfen. Weitere Informationen zu Dev Home finden Sie unter Erstellen wiederverwendbarer Dev-Box-Anpassungen mit Dev Home.
Hinweis
Die Möglichkeit zum Erstellen und Hochladen einer Datei ist kein Sicherheitsrisiko. Die hochgeladene Datei kann nur Einstellungen anwenden, die in dem Katalog definiert sind, der an das Dev Center angefügt ist. Wenn der Task dort nicht definiert ist, wird dem Entwickler eine Fehlermeldung mit dem Hinweis angezeigt, dass der Task nicht definiert ist.
Freigeben einer Konfigurationsdatei aus einem Coderepository
Stellen Sie Ihre Konfigurationsdatei für Ihre Entwickler nahtlos zur Verfügung, indem Sie ihr den Namen workload.yaml geben und sie in ein Repository hochladen, auf das Entwickler zugreifen können. In der Regel ist dies das Codierungsrepository. Wenn Sie eine Dev-Box erstellen, geben Sie die Repository-URL an, und die Konfigurationsdatei wird zusammen mit dem Rest des Repositorys geklont. Die Dev-Box durchsucht das Repository nach einer Datei mit dem Namen „workload.yaml“, und wenn eine gefunden wird, werden die aufgeführten Tasks ausgeführt. Diese Konfiguration bietet eine nahtlose Möglichkeit zum Ausführen von Anpassungen in einer Dev-Box.
Erstellen Sie eine Konfigurationsdatei namens workload.yaml.
Fügen Sie die Konfigurationsdatei dem Stamm eines privaten Azure Repos-Repositorys mit Ihrem Code hinzu, und committen Sie sie.
Melden Sie sich beim Microsoft Dev Box-Entwicklerportal an.
Wählen Sie Neu>Dev-Box aus.
Geben Sie in Dev-Box hinzufügen die folgenden Werte ein, und wählen Sie dann Weiter aus:
Einstellung Wert Name Geben Sie einen Namen für die Dev-Box ein. Dev-Box-Namen müssen innerhalb eines Projekts eindeutig sein. Projekt Wählen Sie ein Projekt aus der Dropdownliste aus. Dev-Box-Pool Wählen Sie einen Pool in der Dropdownliste aus, die alle Dev-Box-Pools für dieses Projekt enthält. Wählen Sie für die geringste Latenz einen Dev-Box-Pool in der Nähe aus. Anwenden von Anpassungen Wählen Sie Anpassungen anwenden aus. Wählen Sie auf der Seite Dev-Box anpassen die Option Anpassungsdatei aus Repository auswählen, geben Sie anschließend in Azure DevOps-Repository-URL die URL des Repositorys ein, in dem die anzuwendende Konfigurationsdatei gehostet wird, und wählen Sie dann Weiter aus.
Dev Box zeigt auf der Zusammenfassungsseite zum Erstellen der Dev-Box die Aufgaben an, die angewandt werden. Klicken Sie auf Erstellen.
Nach Abschluss des Erstellungsprozesses sind in der neuen Dev-Box nodejs und Visual Studio Code installiert.
In der neuen Dev-Box wurden alle Anweisungen aus der Konfigurationsdatei angewandt und die gewünschten Repositorys geklont.
Definieren neuer Tasks in einem Katalog
Durch das Erstellen neuer Tasks in einem Katalog können Sie Anpassungen erstellen, die auf Ihre Entwicklungsteams zugeschnitten sind, sowie Schutzmaßnahmen für die möglichen Konfigurationen hinzufügen.
Erstellen Sie ein Repository zum Speichern Ihrer Tasks.
Optional können Sie eine Kopie des Schnellstartkatalogs in Ihrem eigenen Repository erstellen, um sie als Ausgangspunkt zu verwenden.
Erstellen Sie Tasks in Ihrem Repository, indem Sie vorhandene PowerShell-Skripts ändern oder neue Skripts erstellen.
Um mit dem Erstellen von Tasks zu beginnen, können Sie die Beispiele im Dev Center-Beispielrepository auf GitHub und die PowerShell-Dokumentation verwenden.
Erstellen Sie eine Konfigurationsdatei für diese Tasks, indem Sie die Schritte unter Schreiben einer Konfigurationsdatei ausführen.
Verlinken von Geheimnissen aus einem Azure Key Vault
Sie können Geheimnisse aus Ihrem Azure Key Vault in Ihren yaml-Konfigurationen verwenden, um private Repositories zu klonen, oder mit jeder benutzerdefinierten Aufgabe, die Sie verfassen und die ein Zugriffstoken erfordert.
So konfigurieren Sie Ihre Key Vault-Geheimnisse für die Verwendung in Ihren yaml-Konfigurationen,
Stellen Sie sicher, dass die verwaltete Identität Ihres Dev Center-Projekts die Rollen „Leseberechtigter für Schlüsseltresore“ und „Geheimnisbenutzer für Schlüsseltresore“ für Ihren Schlüsseltresor besitzt.
Gewähren Sie die Rolle „Secrets User“ für das Key Vault-Geheimnis jeder benutzenden Person oder Benutzergruppe, die in der Lage sein soll, das Geheimnis während der Anpassung einer Dev-Box zu verwenden. Zu den benutzenden Personen oder Gruppen, denen die Rolle zugewiesen wird, müssen die verwaltete Identität für das Dev-Center, Ihr eigenes Benutzerkonto und alle benutzenden Personen oder Gruppen gehören, die das Geheimnis während der Anpassung einer Dev-Box benötigen.
Weitere Informationen finden Sie unter:
- Konfigurieren einer verwalteten Identität für ein Dev Center lernen.
- Gewähren des Zugriffs der verwalteten Identität auf das Schlüsseltresorgeheimnis lernen.
Sie können das Geheimnis in Ihrer yaml-Konfiguration in folgendem Format referenzieren, wobei Sie die Aufgabe git-clone als Beispiel nehmen:
$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}}'
Wenn Sie ein privates Azure DevOps-Repository (Azure Repos) klonen möchten, müssen Sie kein Geheimnis in Key Vault konfigurieren. Stattdessen können Sie {{ado}}
oder {{ado://your-ado-organization-name}}
als Parameter verwenden. Dies holt ein Zugriffstoken in Ihrem Namen ein, wenn Sie eine Dev-Box erstellen, die nur Lesezugriff auf Ihr Repository hat. Die Aufgabe „git-clone“ im Schnellstartkatalog verwendet das Zugriffstoken, um Ihr Repository zu klonen. Ein Beispiel:
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}}'
Wenn die Richtlinien Ihrer Organisation vorschreiben, dass Ihr Key Vault nicht mit dem Internet verbunden werden darf, können Sie Ihren Key Vault so einstellen, dass vertrauenswürdige Microsoft-Dienste Ihre Firewallregeln umgehen können.
Wie Sie vertrauenswürdigen Microsoft-Diensten erlauben, die Firewall zu umgehen, erfahren Sie unter Konfigurieren von Azure Key Vault-Netzwerkeinstellungen.