Sdílet prostřednictvím


Vytvoření nové image virtuálního počítače s Windows z existující image pomocí Azure VM Image Builderu

Platí pro: ✔️ Virtuální počítače s Windows

V tomto článku se dozvíte, jak aktualizovat existující verzi image Windows v galerii služby Azure Compute (dříve Sdílená galerie imagí) a publikovat ji v galerii jako novou verzi image.

Ke konfiguraci obrázku použijete ukázkovou šablonu JSON, helloImageTemplateforSIGfromWinSIG.json.

Registrace poskytovatelů

Pokud chcete použít Nástroj Image Builder virtuálního počítače, musíte poskytovatele zaregistrovat.

  1. Zkontrolujte registraci poskytovatele. Ujistěte se, že každý z nich vrátí Zaregistrovaný.

    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. Pokud nevrátí zaregistrované, zaregistrujte poskytovatele spuštěním následujících příkazů:

    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
    

Nastavení proměnných a oprávnění

Pokud jste už vytvořili galerii výpočetních prostředků Azure pomocí možnosti Vytvořit image a distribuujte ji do galerie výpočetních prostředků Azure, už jste vytvořili některé z potřebných proměnných.

Poznámka:

Image Builder virtuálního počítače podporuje vytváření vlastních imagí pouze ve stejné skupině prostředků, ve které je image spravovaná zdrojem. V následujícím příkladu aktualizujte název skupiny prostředků ibsigRG s názvem skupiny prostředků, ve které je vaše image spravovaná zdrojem.

  1. Pokud jste proměnné ještě nevytvořili, spusťte následující příkazy:

    # 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. Vytvořte proměnnou pro ID předplatného:

    subscriptionID=$(az account show --query id --output tsv)
    
  3. Získejte verzi image, kterou chcete aktualizovat:

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

Vytvoření identity přiřazené uživatelem a nastavení oprávnění pro skupinu prostředků

V předchozím příkladu jste nastavili identitu uživatele, takže teď potřebujete získat ID prostředku, které se připojí k šabloně.

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

Pokud už máte galerii výpočetních prostředků Azure, ale nenastavili jste ji podle předchozího příkladu, musíte přiřadit oprávnění pro VM Image Builder pro přístup ke skupině prostředků, aby měla přístup k galerii. Další informace najdete v tématu Vytvoření image a její distribuce do Galerie výpočetních prostředků Azure.

Úprava příkladu helloImage

Příklad JSON, který se chystáte použít, najdete v helloImageTemplateforSIGfromSIG.json. Informace o souboru JSON najdete v tématu Vytvoření šablony Image Builderu virtuálního počítače Azure.

  1. Stáhněte si příklad JSON, jak je znázorněno v tématu Vytvoření identity přiřazené uživatelem a nastavení oprávnění pro skupinu prostředků.

  2. Nakonfigurujte JSON s vašimi proměnnými:

    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
    

Vytvoření image

  1. Odešlete konfiguraci image do služby Image Builder virtuálního počítače:

    az resource create \
        --resource-group $sigResourceGroup \
        --location $location \
        --properties @helloImageTemplateforSIGfromWinSIG.json \
        --is-full-object \
        --resource-type Microsoft.VirtualMachineImages/imageTemplates \
        -n imageTemplateforSIGfromWinSIG01
    
  2. Spusťte sestavení image:

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

Než přejdete k dalšímu kroku, počkejte, než se image sestaví a replikuje.

Vytvoření virtuálního počítače

Vytvořte virtuální počítač následujícím způsobem:

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

Ověření vlastního nastavení

Vytvořte připojení ke vzdálené ploše k virtuálnímu počítači pomocí uživatelského jména a hesla, které jste nastavili při vytváření virtuálního počítače. Ve virtuálním počítači otevřete okno příkazového řádku a spusťte:

dir c:\

Teď byste měli vidět dva adresáře:

  • buildActions: Vytvořeno v první verzi image.
  • buildActions2: Vytvořeno při aktualizaci první verze image pro vytvoření druhé verze image.

Další kroky

Další informace o komponentách souboru JSON, který jste použili v tomto článku, najdete v tématu Vytvoření šablony Image Builderu virtuálního počítače Azure.