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 virtuell Windows-dator med hjälp av Azure VM Image Builder
Artikel
Gäller för: ✔️ Virtuella Windows-datorer
I den här artikeln får du lära dig hur du skapar en anpassad Windows-avbildning med hjälp av Azure VM Image Builder. I exemplet i den här artikeln används anpassningar för att anpassa avbildningen:
PowerShell (infogad): Kör ett specifikt kommando. I det här exemplet skapar den en katalog på den virtuella datorn med hjälp mkdir c:\\buildActionsav .
Fil: Kopierar en fil från GitHub till den virtuella datorn. I det här exemplet kopieras index.md till c:\buildArtifacts\index.html på den virtuella datorn.
buildTimeoutInMinutes: Anger en byggtid i minuter. Standardvärdet är 240 minuter, vilket du kan öka för att tillåta längre versioner. Det minsta tillåtna värdet är 6 minuter. Värden som är kortare än 6 minuter orsakar fel.
vmProfile: Anger en vmSize och nätverksegenskaper.
osDiskSizeGB: Kan användas för att öka storleken på en bild.
identity. Tillhandahåller en identitet som vm Image Builder kan använda under bygget.
Windows-användare kan köra följande Azure CLI-exempel på Azure Cloud Shell med hjälp av Bash.
Registrera leverantörerna
Om du vill använda VM Image Builder måste du registrera funktionen. Kontrollera registreringen genom att köra följande kommandon:
Azure CLI
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 -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
Eftersom du kommer att använda viss information upprepade gånger skapar du några variabler för att lagra den informationen:
Azure CLI
# Resource group name - we're using myImageBuilderRG in this example
imageResourceGroup='myWinImgBuilderRG'# Region locationlocation='WestUS2'# Run output name
runOutputName='aibWindows'# The name of the image to be createdimageName='aibWinImage'
Skapa en variabel för ditt prenumerations-ID:
Azure CLI
subscriptionID=$(az account show --query id --output tsv)
Skapa resursgruppen
Om du vill lagra artefakten för avbildningskonfigurationsmallen och avbildningen använder du följande resursgrupp:
Azure CLI
az group create -n$imageResourceGroup-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 resursgruppen. I det här exemplet skapar du en Azure-rolldefinition med specifika behörigheter för att distribuera avbildningen. Rolldefinitionen tilldelas sedan till användaridentiteten.
Skapa en användartilldelad hanterad identitet och bevilja behörigheter
Skapa en användartilldelad identitet så att den virtuella datorn Image Builder kan komma åt lagringskontot där skriptet lagras.
Azure CLI
identityName=aibBuiUserId$(date +'%s')
az identity create -g$imageResourceGroup-n$identityName# Get the identity ID
imgBuilderCliId=$(az identity show -g$imageResourceGroup-n$identityName--query clientId -o tsv)
# Get the user identity URI that's needed for the template
imgBuilderId=/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$identityName# Download the preconfigured role definition example
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>%$imageResourceGroup%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/$imageResourceGroup
Ladda ned mallen för avbildningskonfiguration
Vi har skapat en parameteriserad bildkonfigurationsmall som du kan prova. Ladda ned JSON-exempelfilen och konfigurera den sedan med de variabler som du angav tidigare.
Azure CLI
curl https://raw.githubusercontent.com/azure/azvmimagebuilder/master/quickquickstarts/0_Creating_a_Custom_Windows_Managed_Image/helloImageTemplateWin.json -o helloImageTemplateWin.json
sed -i-e"s%<subscriptionID>%$subscriptionID%g" helloImageTemplateWin.json
sed -i-e"s%<rgName>%$imageResourceGroup%g" helloImageTemplateWin.json
sed -i-e"s%<region>%$location%g" helloImageTemplateWin.json
sed -i-e"s%<imageName>%$imageName%g" helloImageTemplateWin.json
sed -i-e"s%<runOutputName>%$runOutputName%g" helloImageTemplateWin.json
sed -i-e"s%<imgBuilderId>%$imgBuilderId%g" helloImageTemplateWin.json
Du kan ändra det här exemplet i terminalen med hjälp av en textredigerare som vi.
Azure CLI
vi helloImageTemplateWin.json
Anteckning
Ange alltid en version för källbilden. Du kan inte ange latest som version.
Om du lägger till eller ändrar den resursgrupp som avbildningen distribueras till kontrollerar du att behörigheterna har angetts för resursgruppen.
Skapa avbildningen
Skicka avbildningskonfigurationen till tjänsten Image Builder för den virtuella datorn genom att köra följande kommandon:
När du är klar returneras ett meddelande om lyckat resultat till konsolen och en konfigurationsmall för VM Image Builder skapas i $imageResourceGroup.
I bakgrunden skapar VM Image Builder också en mellanlagringsresursgrupp i din prenumeration. Den här resursgruppen används för att skapa avbildningen i följande format: IT_<DestinationResourceGroup>_<TemplateName>.
Anteckning
Om borttagning krävs ska du inte ta bort mellanlagringsresursgruppen direkt. Ta först bort artefakten för avbildningsmallen, som sedan tar bort mellanlagringsresursgruppen. Annars kan bildmallen ange ett feltillstånd.
Om tjänsten rapporterar ett fel när du skickar avbildningskonfigurationsmallen gör du följande:
Skapa den virtuella datorn med den avbildning som du skapade. I följande kod ersätter du <lösenordet> med ditt eget lösenord för aibusern på den virtuella datorn.
Azure CLI
az vm create \
--resource-group$imageResourceGroup \
--name aibImgWinVm00 \
--admin-username aibuser \
--admin-password<password> \
--image$imageName \
--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 skriv sedan:
Console
dir c:\
Följande två kataloger skapas under avbildningsanpassningen:
buildActions
buildArtifacts
Rensa dina resurser
När du är klar tar du bort de resurser som du har skapat.
Lär dig hur du skapar nya virtuella datorer från generaliserade avbildningar och använder Azure Image Builder-mallar för att skapa och hantera avbildningar i Azure.