Een nieuwe VM-installatiekopieën maken op basis van een bestaande installatiekopieën met behulp van Azure VM Image Builder in Linux
Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️
In dit artikel leert u hoe u een bestaande versie van een installatiekopieën bijwerkt in een Azure Compute Gallery (voorheen Shared Image Gallery ) en deze als een nieuwe versie van de installatiekopieën naar de galerie publiceert.
Als u de afbeelding wilt configureren, gebruikt u een JSON-voorbeeldsjabloon helloImageTemplateforSIGfromSIG.json.
De providers registreren
Als u VM Image Builder wilt gebruiken, moet u de providers registreren.
Controleer uw providerregistraties. Zorg ervoor dat elke instantie Geregistreerd retourneert.
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
Als ze niet worden geretourneerd Geregistreerd, registreert u de providers door de volgende opdrachten uit te voeren:
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
Variabelen en machtigingen instellen
Als u al een Azure Compute Gallery hebt gemaakt met behulp van Een installatiekopieën maken en distribueren naar een Azure Compute Gallery, hebt u al een aantal variabelen gemaakt die u nodig hebt.
Als u de variabelen nog niet hebt gemaakt, voert u de volgende opdrachten uit:
# 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
Maak een variabele voor uw abonnements-id:
subscriptionID=$(az account show --query id --output tsv)
Haal de installatiekopieënversie op die u wilt bijwerken:
sigDefImgVersionId=$(az sig image-version list \ -g $sigResourceGroup \ --gallery-name $sigName \ --gallery-image-definition $imageDefName \ --subscription $subscriptionID --query [].'id' -o tsv)
Een door de gebruiker toegewezen identiteit maken en machtigingen instellen voor de resourcegroep
U hebt de gebruikersidentiteit in een eerder voorbeeld ingesteld, dus nu moet u de resource-id ophalen, die wordt toegevoegd aan de sjabloon.
#get identity used previously
imgBuilderId=$(az identity list -g $sigResourceGroup --query "[?contains(name, 'aibBuiUserId')].id" -o tsv)
Als u al een Azure Compute Gallery hebt, maar deze niet hebt ingesteld door een eerder voorbeeld te volgen, moet u machtigingen toewijzen voor VM Image Builder om toegang te krijgen tot de resourcegroep, zodat deze toegang heeft tot de galerie. Zie Een installatiekopieën maken en distribueren naar een Azure Compute Gallery voor meer informatie.
Het helloImage-voorbeeld wijzigen
U kunt het JSON-voorbeeld bekijken dat u op helloImageTemplateforSIGfromSIG.json gaat gebruiken. Zie Een Azure VM Image Builder-sjabloon maken voor meer informatie over het JSON-bestand.
Download het JSON-voorbeeld, zoals wordt weergegeven in Een Linux-installatiekopieën maken en distribueren naar een Azure Compute Gallery met behulp van de Azure CLI.
Configureer de JSON met uw variabelen:
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
De installatiekopie maken
Verzend de installatiekopieënconfiguratie naar de VM Image Builder-service:
az resource create \ --resource-group $sigResourceGroup \ --properties @helloImageTemplateforSIGfromSIG.json \ --is-full-object \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n helloImageTemplateforSIGfromSIG01
Start de build van de installatiekopieën:
az resource invoke-action \ --resource-group $sigResourceGroup \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n helloImageTemplateforSIGfromSIG01 \ --action Run
Wacht totdat de installatiekopie is gemaakt en gerepliceerd voordat u verdergaat met de volgende stap.
De VM maken
Maak de VIRTUELE machine als volgt:
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
Maak een SSH-verbinding (Secure Shell) met behulp van het openbare IP-adres van de VIRTUELE machine.
ssh azureuser@<pubIp>
Nadat de SSH-verbinding tot stand is gebracht, ontvangt u het bericht 'Bericht van de dag' waarin staat dat de afbeelding is aangepast:
******************************************************* ** This VM was built from the: ** ** !! AZURE VM IMAGE BUILDER Custom Image !! ** ** You have just been Customized :-) ** *******************************************************
Typ
exit
om de SSH-verbinding te sluiten.Als u de installatiekopieën wilt weergeven die nu beschikbaar zijn in uw galerie, voert u het volgende uit:
az sig image-version list -g $sigResourceGroup -r $sigName -i $imageDefName -o table
Volgende stappen
Zie Een Azure VM Image Builder-sjabloon maken voor meer informatie over de onderdelen van het JSON-bestand dat u in dit artikel hebt gebruikt.