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.
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
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.
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
Vytvořte proměnnou pro ID předplatného:
subscriptionID=$(az account show --query id --output tsv)
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.
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.
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
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
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
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
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 :-) ** *******************************************************
Zadáním
exit
zavřete připojení SSH.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.