Dela via


Skapa en ny avbildning av en virtuell Windows-dator från en befintlig avbildning med hjälp av Azure VM Image Builder

Gäller för: ✔️ Virtuella Windows-datorer

I den här artikeln får du lära dig hur du uppdaterar en befintlig Windows-avbildningsversion i ett Azure Compute-galleri (tidigare delat bildgalleri) och publicerar den i galleriet som en ny avbildningsversion.

Om du vill konfigurera avbildningen använder du en JSON-exempelmall helloImageTemplateforSIGfromWinSIG.json.

Registrera leverantörerna

Om du vill använda VM Image Builder måste du registrera leverantörerna.

  1. Kontrollera dina providerregistreringar. Kontrollera att var och en returnerar Registrerad.

    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
    
  2. Om de inte returnerar Registrerad registrerar du leverantörerna genom att köra följande kommandon:

    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
    

Ange variabler och behörigheter

Om du redan har skapat ett Azure Compute-galleri med hjälp av Skapa en avbildning och distribuera den till ett Azure Compute-galleri har du redan skapat några av de variabler du behöver.

Kommentar

Vm Image Builder har endast stöd för att skapa anpassade avbildningar i samma resursgrupp som den källhanterade avbildningen finns i. I följande exempel uppdaterar du resursgruppens namn, ibsigRG, med namnet på resursgruppen som din källhanterade avbildning finns i.

  1. Om du inte redan har skapat variablerna kör du följande kommandon:

    # 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"
    
  2. Skapa en variabel för ditt prenumerations-ID:

    subscriptionID=$(az account show --query id --output tsv)
    
  3. Hämta den avbildningsversion som du vill uppdatera:

    sigDefImgVersionId=$(az sig image-version list \
    -g $sigResourceGroup \
    --gallery-name $sigName \
    --gallery-image-definition $imageDefName \
    --subscription $subscriptionID --query [].'id' -o tsv)
    

Skapa en användartilldelad identitet och ange behörigheter för resursgruppen

Du har konfigurerat användaridentiteten i ett tidigare exempel, så nu måste du hämta resurs-ID:t som läggs till i mallen.

#get identity used previously
imgBuilderId=$(az identity list -g $sigResourceGroup --query "[?contains(name, 'aibBuiUserId')].id" -o tsv)

Om du redan har ett Azure Compute-galleri men inte har konfigurerat det genom att följa ett tidigare exempel måste du tilldela behörigheter för VM Image Builder för att få åtkomst till resursgruppen så att den kan komma åt galleriet. Mer information finns i Skapa en avbildning och distribuera den till ett Azure Compute-galleri.

Ändra helloImage-exemplet

Du kan granska JSON-exemplet som du ska använda på helloImageTemplateforSIGfromSIG.json. Information om JSON-filen finns i Skapa en mall för avbildningsverktyget för virtuella Azure-datorer.

  1. Ladda ned JSON-exemplet, som du ser i Skapa en användartilldelad identitet och ange behörigheter för resursgruppen.

  2. Konfigurera JSON med dina variabler:

    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
    

Skapa avbildningen

  1. Skicka avbildningskonfigurationen till tjänsten Image Builder för den virtuella datorn:

    az resource create \
        --resource-group $sigResourceGroup \
        --location $location \
        --properties @helloImageTemplateforSIGfromWinSIG.json \
        --is-full-object \
        --resource-type Microsoft.VirtualMachineImages/imageTemplates \
        -n imageTemplateforSIGfromWinSIG01
    
  2. Starta avbildningsversionen:

    az resource invoke-action \
        --resource-group $sigResourceGroup \
        --resource-type  Microsoft.VirtualMachineImages/imageTemplates \
        -n imageTemplateforSIGfromWinSIG01 \
        --action Run 
    

Vänta tills avbildningen har skapats och replikerats innan du går vidare till nästa steg.

Skapa den virtuella datorn

Skapa den virtuella datorn genom att göra följande:

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

Verifiera anpassningen

Skapa en fjärrskrivbordsanslutning till den virtuella datorn med det användarnamn och lösenord som du angav när du skapade den virtuella datorn. Öppna ett kommandotolkfönster på den virtuella datorn och kör sedan:

dir c:\

Nu bör du se två kataloger:

  • buildActions: Skapades i den första avbildningsversionen.
  • buildActions2: Skapades när du uppdaterade den första avbildningsversionen för att skapa den andra avbildningsversionen.

Nästa steg

Mer information om komponenterna i JSON-filen som du använde i den här artikeln finns i Skapa en azure VM Image Builder-mall.