Erstellen eines neuen Windows-VM-Images anhand eines vorhandenen Images mithilfe von Azure VM Image Builder
Gilt für: ✔️ Windows-VMs
In diesem Artikel erfahren Sie, wie Sie eine vorhandene Windows-Imageversion in einer Instanz von Azure Compute Gallery (ehemals Shared Image Gallery) aktualisieren und als neue Imageversion im Katalog veröffentlichen.
Sie konfigurieren das Image mithilfe der JSON-Beispielvorlage helloImageTemplateforSIGfromWinSIG.json.
Registrieren Sie die Anbieter
Um den VM Image Builder zu verwenden, müssen Sie die Anbieter registrieren.
Überprüfen Sie Ihre Anbieterregistrierungen. Stellen Sie sicher, dass für jeden Anbieter Registriert zurückgegeben wird.
az provider show -n Microsoft.VirtualMachineImages | grep registrationState az provider show -n Microsoft.KeyVault | grep registrationState az provider show -n Microsoft.Compute | grep registrationState az provider show -n Microsoft.Storage | grep registrationState az provider show -n Microsoft.Network | grep registrationState az provider show -n Microsoft.ContainerInstance | grep registrationState
Wenn nicht Registriert zurückgegeben wird, registrieren Sie die Anbieter, indem Sie die folgenden Befehle ausführen:
az provider register -n Microsoft.VirtualMachineImages az provider register -n Microsoft.Compute az provider register -n Microsoft.KeyVault az provider register -n Microsoft.Storage az provider register -n Microsoft.Network az provider register -n Microsoft.ContainerInstance
Festlegen von Variablen und Berechtigungen
Wenn Sie eine Azure Compute Gallery-Instanz auf Grundlage von Erstellen eines Images und Verteilen des Images an eine Azure Compute Gallery-Instanz erstellt haben, haben Sie bereits einige der benötigten Variablen erstellt.
Hinweis
VM Image Builder unterstützt das Erstellen benutzerdefinierter Images nur in derselben Ressourcengruppe, in der sich auch das von der Quelle verwaltete Image befindet. Ändern Sie im folgenden Beispiel den Namen der Ressourcengruppe ibsigRG in den der Ressourcengruppe, in der sich Ihr von der Quelle verwaltetes Image befindet.
Wenn Sie die Variablen noch nicht erstellt haben, führen Sie die folgenden Befehle aus:
# Resource group name - we are using ibsigRG in this example sigResourceGroup=myIBWinRG # Datacenter location - we are using West US 2 in this example location=westus # Additional region to replicate the image to - we are using East US in this example additionalregion=eastus # name of the Azure Compute Gallery - in this example we are using myGallery sigName=my22stSIG # name of the image definition to be created - in this example we are using myImageDef imageDefName=winSvrimages # image distribution metadata reference name runOutputName=w2019SigRo # User name and password for the VM username="user name for the VM" vmpassword="password for the VM"
Erstellen Sie eine Variable für Ihre Abonnement-ID:
subscriptionID=$(az account show --query id --output tsv)
Rufen Sie die Imageversion ab, die Sie aktualisieren möchten:
sigDefImgVersionId=$(az sig image-version list \ -g $sigResourceGroup \ --gallery-name $sigName \ --gallery-image-definition $imageDefName \ --subscription $subscriptionID --query [].'id' -o tsv)
Erstellen einer vom Benutzer zugewiesene Identität und Festlegen von Berechtigungen für die Ressourcengruppe
Sie haben die Benutzeridentität bereits in einem früheren Beispiel eingerichtet. Jetzt müssen Sie die Ressourcen-ID ermitteln, die an die Vorlage angefügt wird.
#get identity used previously
imgBuilderId=$(az identity list -g $sigResourceGroup --query "[?contains(name, 'aibBuiUserId')].id" -o tsv)
Wenn Sie bereits über eine Azure Compute Gallery-Instanz verfügen, diese aber nicht anhand eines früheren Beispiels eingerichtet haben, müssen Sie VM Image Builder Berechtigungen für den Zugriff auf die Ressourcengruppe zuweisen, damit der Zugriff auf den Katalog möglich ist. Weitere Informationen finden Sie unter Erstellen eines Images und Verteilen des Images an eine Azure Compute Gallery-Instanz.
Ändern des Beispiels helloImage
Sie können das JSON-Beispiel prüfen, das Sie für helloImageTemplateforSIGfromSIG.json verwenden möchten. Informationen zur JSON-Datei finden Sie unter Erstellen einer Azure VM Image Builder-Vorlage.
Laden Sie das JSON-Beispiel herunter, wie unter Erstellen einer benutzerseitig zugewiesenen Identität und Festlegen von Berechtigungen für die Ressourcengruppe gezeigt.
Konfigurieren Sie den JSON-Code mit Ihren Variablen:
curl https://raw.githubusercontent.com/azure/azvmimagebuilder/master/quickquickstarts/8_Creating_a_Custom_Win_Shared_Image_Gallery_Image_from_SIG/helloImageTemplateforSIGfromWinSIG.json -o helloImageTemplateforSIGfromWinSIG.json sed -i -e "s/<subscriptionID>/$subscriptionID/g" helloImageTemplateforSIGfromWinSIG.json sed -i -e "s/<rgName>/$sigResourceGroup/g" helloImageTemplateforSIGfromWinSIG.json sed -i -e "s/<imageDefName>/$imageDefName/g" helloImageTemplateforSIGfromWinSIG.json sed -i -e "s/<sharedImageGalName>/$sigName/g" helloImageTemplateforSIGfromWinSIG.json sed -i -e "s%<sigDefImgVersionId>%$sigDefImgVersionId%g" helloImageTemplateforSIGfromWinSIG.json sed -i -e "s/<region1>/$location/g" helloImageTemplateforSIGfromWinSIG.json sed -i -e "s/<region2>/$additionalregion/g" helloImageTemplateforSIGfromWinSIG.json sed -i -e "s/<runOutputName>/$runOutputName/g" helloImageTemplateforSIGfromWinSIG.json sed -i -e "s%<imgBuilderId>%$imgBuilderId%g" helloImageTemplateforSIGfromWinSIG.json
Erstellen des Images
Senden Sie die Imagekonfiguration an den VM-Image Builder-Dienst.
az resource create \ --resource-group $sigResourceGroup \ --location $location \ --properties @helloImageTemplateforSIGfromWinSIG.json \ --is-full-object \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n imageTemplateforSIGfromWinSIG01
Starten Sie die Imageerstellung:
az resource invoke-action \ --resource-group $sigResourceGroup \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n imageTemplateforSIGfromWinSIG01 \ --action Run
Warten Sie, bis das Image erstellt und repliziert wurde, ehe Sie zum nächsten Schritt übergehen.
Erstellen des virtuellen Computers
Erstellen Sie den virtuellen Computer über die folgenden Schritte:
az vm create \
--resource-group $sigResourceGroup \
--name aibImgWinVm002 \
--admin-username $username \
--admin-password $vmpassword \
--image "/subscriptions/$subscriptionID/resourceGroups/$sigResourceGroup/providers/Microsoft.Compute/galleries/$sigName/images/$imageDefName/versions/latest" \
--location $location
Überprüfen der Anpassung
Stellen Sie eine Remotedesktopverbindung mit der VM mit dem Benutzernamen samt Kennwort her, den Sie beim Erstellen der VM festgelegt haben. Öffnen Sie in der VM ein Eingabeaufforderungsfenster, und führen Sie dann Folgendes aus:
dir c:\
Sie sollten nun zwei Verzeichnisse sehen:
- buildActions: in der ersten Imageversion erstellt.
- buildActions2: erstellt, als Sie die erste Imageversion aktualisiert haben, um die zweite Imageversion zu erstellen.
Nächste Schritte
Weitere Informationen zu den Komponenten der JSON-Datei, die Sie in diesem Artikel verwendet haben, finden Sie unter Erstellen einer Azure VM Image Builder-Vorlage.