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

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

V tomto článku se dozvíte, jak aktualizovat existující verzi image v Galerii výpočetních prostředků Azure (dříve Sdílená galerie imagí) a publikovat ji do galerie jako novou verzi image.

Ke konfiguraci obrázku použijete ukázkovou šablonu JSON helloImageTemplateforSIGfromSIG.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.

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

    # 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
    
  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

Můžete si projít příklad JSON, který se chystáte použít na webu 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í image Linuxu a jeho distribuce do Galerie výpočetních prostředků Azure pomocí Azure CLI.

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

    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
    

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 \
        --properties @helloImageTemplateforSIGfromSIG.json \
        --is-full-object \
        --resource-type Microsoft.VirtualMachineImages/imageTemplates \
        -n helloImageTemplateforSIGfromSIG01
    
  2. Spusťte sestavení image:

    az resource invoke-action \
        --resource-group $sigResourceGroup \
        --resource-type  Microsoft.VirtualMachineImages/imageTemplates \
        -n helloImageTemplateforSIGfromSIG01 \
        --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

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

    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
    
  2. Vytvořte připojení SSH (Secure Shell) k virtuálnímu počítači pomocí veřejné IP adresy virtuálního počítače.

    ssh azureuser@<pubIp>
    

    Po navázání připojení SSH byste měli obdržet zprávu o dni s oznámením, že obrázek byl přizpůsobený:

    *******************************************************
    **            This VM was built from the:            **
    **      !! AZURE VM IMAGE BUILDER Custom Image !!    **
    **         You have just been Customized :-)         **
    *******************************************************
    
  3. Zadáním exit zavřete připojení SSH.

  4. Pokud chcete zobrazit seznam verzí imagí, které jsou teď dostupné v galerii, spusťte:

    az sig image-version list -g $sigResourceGroup -r $sigName -i $imageDefName -o table
    

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.