Migrera till Innovate Summit:
Lär dig hur migrering och modernisering till Azure kan öka företagets prestanda, motståndskraft och säkerhet, så att du kan använda AI fullt ut.Registrera dig nu
Den här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Skapa en Linux-avbildning och distribuera den till ett Azure Compute-galleri med hjälp av Azure CLI
Artikel
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️
I den här artikeln får du lära dig hur du använder Azure VM Image Builder och Azure CLI för att skapa en avbildningsversion i ett Azure Compute-galleri (tidigare delat bildgalleri) och sedan distribuera avbildningen globalt. Du kan också skapa en avbildningsversion med hjälp av Azure PowerShell.
Den här artikeln använder en JSON-exempelmall för att konfigurera avbildningen. JSON-filen finns på helloImageTemplateforSIG.json.
För att distribuera avbildningen till ett Azure Compute-galleri använder mallen sharedImage som värde för distribute avsnittet i mallen.
Registrera leverantörerna
Om du vill använda VM Image Builder måste du registrera leverantörerna. Kontrollera registreringen genom att köra följande kommandon:
Azure CLI
az provider show -n Microsoft.VirtualMachineImages -o json | grep registrationState
az provider show -n Microsoft.KeyVault -o json | grep registrationState
az provider show -n Microsoft.Compute -o json | grep registrationState
az provider show -n Microsoft.Storage -o json | grep registrationState
az provider show -n Microsoft.Network -o json | grep registrationState
az provider show -n Microsoft.ContainerInstance -o json | grep registrationState
Om utdata inte säger registrerade kör du följande kommandon:
Azure CLI
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
Eftersom du kommer att använda viss information upprepade gånger skapar du vissa variabler för att lagra den informationen.
Vm Image Builder har endast stöd för att skapa anpassade avbildningar i samma resursgrupp som den källhanterade avbildningen. I följande exempel uppdaterar du resursgruppens namn så att det är samma resursgrupp som din källhanterade avbildning.
Azure CLI
# Resource group name - ibLinuxGalleryRG in this example
sigResourceGroup=ibLinuxGalleryRG
# Datacenter location - West US 2 in this examplelocation=westus2
# Additional region to replicate the image to - East US in this exampleadditionalregion=eastus
# Name of the Azure Compute Gallery - myGallery in this examplesigName=myIbGallery
# Name of the image definition to be created - myImageDef in this example
imageDefName=myIbImageDef
# Reference name in the image distribution metadata
runOutputName=aibLinuxSIG
Skapa en variabel för ditt prenumerations-ID:
Azure CLI
subscriptionID=$(az account show --query id --output tsv)
Skapa resursgruppen:
Azure CLI
az group create -n$sigResourceGroup-l$location
Skapa en användartilldelad identitet och ange behörigheter för resursgruppen
Vm Image Builder använder den angivna användaridentiteten för att mata in avbildningen i ett Azure Compute-galleri. I det här exemplet skapar du en Azure-rolldefinition med specifika åtgärder för att distribuera avbildningen. Rolldefinitionen tilldelas sedan till användaridentiteten.
Azure CLI
# Create user-assigned identity for VM Image Builder to access the storage account where the script is storedidentityName=aibBuiUserId$(date +'%s')
az identity create -g$sigResourceGroup-n$identityName# Get the identity ID
imgBuilderCliId=$(az identity show -g$sigResourceGroup-n$identityName--query clientId -o tsv)
# Get the user identity URI that's needed for the template
imgBuilderId=/subscriptions/$subscriptionID/resourcegroups/$sigResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$identityName# Download an Azure role-definition template, and update the template with the parameters that were specified earlier
curl https://raw.githubusercontent.com/Azure/azvmimagebuilder/master/solutions/12_Creating_AIB_Security_Roles/aibRoleImageCreation.json -o aibRoleImageCreation.json
imageRoleDefName="Azure Image Builder Image Def"$(date +'%s')
# Update the definition
sed -i-e"s/<subscriptionID>/$subscriptionID/g" aibRoleImageCreation.json
sed -i-e"s/<rgName>/$sigResourceGroup/g" aibRoleImageCreation.json
sed -i-e"s/Azure Image Builder Service Image Creation Role/$imageRoleDefName/g" aibRoleImageCreation.json
# Create role definitionsaz role definition create --role-definition ./aibRoleImageCreation.json
# Grant a role definition to the user-assigned identityaz role assignment create \
--assignee$imgBuilderCliId \
--role"$imageRoleDefName" \
--scope /subscriptions/$subscriptionID/resourceGroups/$sigResourceGroup
Skapa en bilddefinition och ett galleri
Om du vill använda VM Image Builder med Azure Compute Gallery måste du ha ett befintligt galleri och en bilddefinition. Vm Image Builder skapar inte galleriet och avbildningsdefinitionen åt dig.
Om du inte redan har ett galleri och en bilddefinition att använda börjar du med att skapa dem.
Skapa först ett galleri:
Azure CLI
az sig create \
-g$sigResourceGroup \
--gallery-name$sigName
Skapa sedan en bilddefinition:
Azure CLI
az sig image-definition create \
-g$sigResourceGroup \
--gallery-name$sigName \
--gallery-image-definition$imageDefName \
--publisher myIbPublisher \
--offer myOffer \
--sku20_04-lts-gen2 \
--os-type Linux \
--hyper-v-generation V2 \
--features SecurityType=TrustedLaunchSupported
Ladda ned och konfigurera JSON-filen
Ladda ned JSON-mallen och konfigurera den med dina variabler:
Azure CLI
curl https://raw.githubusercontent.com/Azure/azvmimagebuilder/master/quickquickstarts/1_Creating_a_Custom_Linux_Shared_Image_Gallery_Image/helloImageTemplateforSIG.json -o helloImageTemplateforSIG.json
sed -i-e"s/<subscriptionID>/$subscriptionID/g" helloImageTemplateforSIG.json
sed -i-e"s/<rgName>/$sigResourceGroup/g" helloImageTemplateforSIG.json
sed -i-e"s/<imageDefName>/$imageDefName/g" helloImageTemplateforSIG.json
sed -i-e"s/<sharedImageGalName>/$sigName/g" helloImageTemplateforSIG.json
sed -i-e"s/<region1>/$location/g" helloImageTemplateforSIG.json
sed -i-e"s/<region2>/$additionalregion/g" helloImageTemplateforSIG.json
sed -i-e"s/<runOutputName>/$runOutputName/g" helloImageTemplateforSIG.json
sed -i-e"s%<imgBuilderId>%$imgBuilderId%g" helloImageTemplateforSIG.json
Skapa avbildningsversionen
I det här avsnittet skapar du avbildningsversionen i galleriet.
Skicka avbildningskonfigurationen till azure VM Image Builder-tjänsten:
az resource invoke-action \
--resource-group$sigResourceGroup \
--resource-type Microsoft.VirtualMachineImages/imageTemplates \
-n helloImageTemplateforSIG01 \
--action Run
Det kan ta en stund att skapa avbildningen och replikera den till båda regionerna. Vänta tills den här delen är klar innan du går vidare för att skapa en virtuell dator.
Skapa den virtuella datorn
Skapa den virtuella datorn från avbildningsversionen som skapades av VM Image Builder.
Azure CLI
az vm create \
--resource-group$sigResourceGroup \
--name myAibGalleryVM \
--admin-username aibuser \
--location$location \
--image"/subscriptions/$subscriptionID/resourceGroups/$sigResourceGroup/providers/Microsoft.Compute/galleries/$sigName/images/$imageDefName/versions/latest" \
--security-type TrustedLaunch \
--generate-ssh-keys
Anslut till den virtuella datorn via Secure Shell (SSH):
Azure CLI
ssh aibuser@<publicIpAddress>
Så snart SSH-anslutningen har upprättats bör du se att avbildningen har anpassats med dagens meddelande:
Console
*******************************************************
** This VM was built from the: **
** !! AZURE VM IMAGE BUILDER Custom Image !! **
** You have just been Customized :-) **
*******************************************************
Om du inte längre behöver de resurser som skapades när du följde processen i den här artikeln kan du ta bort dem genom att göra följande.
Den här processen tar bort både avbildningen som du skapade och alla andra resursfiler. Kontrollera att du har slutfört distributionen innan du tar bort resurserna.
När du tar bort galleriresurser måste du ta bort alla avbildningsversioner innan du kan ta bort bilddefinitionen som användes för att skapa dem. Om du vill ta bort ett galleri måste du först ha tagit bort alla bilddefinitioner i galleriet.
Ett delat bildgalleri förenklar anpassad bilddelning i hela organisationen. Anpassade avbildningar kan användas för att starta distributionsuppgifter som förinläsning av program, programkonfigurationer och andra OS-konfigurationer.
Lär dig hur du använder Azure Image Builder och Azure CLI för att skapa en avbildningsversion i ett Azure Compute-galleri och sedan distribuera avbildningen globalt.
I den här artikeln får du lära dig hur du skapar en ny version av vm-avbildningen från en befintlig avbildningsversion med hjälp av VM Image Builder i Linux.
I den här artikeln använder du en Azure DevOps-uppgift för att mata in byggartefakter i en VM-avbildning så att du kan installera och konfigurera ditt program och operativsystem.