Erstellen eines neuen VM-Images anhand eines vorhandenen Images mithilfe von Azure VM Image Builder unter Linux
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
In diesem Artikel erfahren Sie, wie Sie eine vorhandene 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 helloImageTemplateforSIGfromSIG.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.
Wenn Sie die Variablen noch nicht erstellt haben, führen Sie die folgenden Befehle aus:
# Resource group name sigResourceGroup=ibLinuxGalleryRG # Gallery location location=westus2 # Additional region to replicate the image version to additionalregion=eastus # Name of the Azure Compute Gallery sigName=myIbGallery # Name of the image definition to use imageDefName=myIbImageDef # image distribution metadata reference name runOutputName=aibSIGLinuxUpdate
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 entsprechend der Anleitung unter Erstellen eines Linux-Images und Verteilen des Images auf die Azure Compute Gallery mithilfe der Azure CLI herunter.
Konfigurieren Sie den JSON-Code mit Ihren Variablen:
curl https://raw.githubusercontent.com/azure/azvmimagebuilder/master/quickquickstarts/8_Creating_a_Custom_Linux_Shared_Image_Gallery_Image_from_SIG/helloImageTemplateforSIGfromSIG.json -o helloImageTemplateforSIGfromSIG.json sed -i -e "s/<subscriptionID>/$subscriptionID/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<rgName>/$sigResourceGroup/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<imageDefName>/$imageDefName/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<sharedImageGalName>/$sigName/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s%<sigDefImgVersionId>%$sigDefImgVersionId%g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<region1>/$location/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<region2>/$additionalregion/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s/<runOutputName>/$runOutputName/g" helloImageTemplateforSIGfromSIG.json sed -i -e "s%<imgBuilderId>%$imgBuilderId%g" helloImageTemplateforSIGfromSIG.json
Erstellen des Images
Senden Sie die Imagekonfiguration an den VM-Image Builder-Dienst.
az resource create \ --resource-group $sigResourceGroup \ --properties @helloImageTemplateforSIGfromSIG.json \ --is-full-object \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n helloImageTemplateforSIGfromSIG01
Starten Sie die Imageerstellung:
az resource invoke-action \ --resource-group $sigResourceGroup \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n helloImageTemplateforSIGfromSIG01 \ --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 aibImgVm001 \ --admin-username azureuser \ --location $location \ --image "/subscriptions/$subscriptionID/resourceGroups/$sigResourceGroup/providers/Microsoft.Compute/galleries/$sigName/images/$imageDefName/versions/latest" \ --generate-ssh-keys
Stellen Sie eine SSH-Verbindung (Secure Shell) mit der VM unter Verwendung ihrer öffentlichen IP-Adresse her.
ssh azureuser@<pubIp>
Sobald die SSH-Verbindung hergestellt wurde, sollten Sie eine „Nachricht des Tages“ erhalten, dass das Image angepasst wurde.
******************************************************* ** This VM was built from the: ** ** !! AZURE VM IMAGE BUILDER Custom Image !! ** ** You have just been Customized :-) ** *******************************************************
Geben Sie
exit
ein, um die SSH-Verbindung zu schließen.Um die Imageversionen aufzulisten, die jetzt in Ihrem Katalog verfügbar sind, führen Sie Folgendes aus:
az sig image-version list -g $sigResourceGroup -r $sigName -i $imageDefName -o table
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.