Tworzenie nowego obrazu maszyny wirtualnej z systemem Windows na podstawie istniejącego obrazu przy użyciu narzędzia Azure VM Image Builder
Dotyczy: ✔️ maszyny wirtualne z systemem Windows
Z tego artykułu dowiesz się, jak zaktualizować istniejącą wersję obrazu systemu Windows w galerii obliczeń platformy Azure (dawniej Shared Image Gallery) i opublikować ją w galerii jako nową wersję obrazu.
Aby skonfigurować obraz, użyj przykładowego szablonu JSON, helloImageTemplateforSIGfromWinSIG.json.
Rejestrowanie dostawców
Aby użyć narzędzia VM Image Builder, musisz zarejestrować dostawców.
Sprawdź rejestracje dostawcy. Upewnij się, że każdy z nich zwraca wartość Zarejestrowano.
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
Jeśli nie zostaną zwrócone zarejestrowane, zarejestruj dostawców, uruchamiając następujące polecenia:
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
Ustawianie zmiennych i uprawnień
Jeśli galeria obliczeniowa platformy Azure została już utworzona przy użyciu funkcji Tworzenie obrazu i dystrybuowanie jej do galerii obliczeń platformy Azure, utworzono już niektóre potrzebne zmienne.
Uwaga
Konstruktor obrazów maszyny wirtualnej obsługuje tworzenie obrazów niestandardowych tylko w tej samej grupie zasobów, w których znajduje się obraz zarządzany przez źródło. W poniższym przykładzie zaktualizuj nazwę grupy zasobów ibsigRG przy użyciu nazwy grupy zasobów, w których znajduje się obraz zarządzany przez źródło.
Jeśli jeszcze nie utworzono zmiennych, uruchom następujące polecenia:
# 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"
Utwórz zmienną dla identyfikatora subskrypcji:
subscriptionID=$(az account show --query id --output tsv)
Pobierz wersję obrazu, którą chcesz zaktualizować:
sigDefImgVersionId=$(az sig image-version list \ -g $sigResourceGroup \ --gallery-name $sigName \ --gallery-image-definition $imageDefName \ --subscription $subscriptionID --query [].'id' -o tsv)
Tworzenie tożsamości przypisanej przez użytkownika i ustawianie uprawnień w grupie zasobów
Tożsamość użytkownika została skonfigurowana we wcześniejszym przykładzie, więc teraz musisz pobrać identyfikator zasobu, który zostanie dołączony do szablonu.
#get identity used previously
imgBuilderId=$(az identity list -g $sigResourceGroup --query "[?contains(name, 'aibBuiUserId')].id" -o tsv)
Jeśli masz już galerię obliczeniową platformy Azure, ale nie skonfigurowaliśmy jej, postępując zgodnie z wcześniejszym przykładem, musisz przypisać uprawnienia konstruktora obrazów maszyny wirtualnej, aby uzyskać dostęp do grupy zasobów, aby mógł uzyskać dostęp do galerii. Aby uzyskać więcej informacji, zobacz Create an image and distribute it to an Azure Compute Gallery (Tworzenie obrazu i dystrybuowanie go do galerii obliczeń platformy Azure).
Modyfikowanie przykładu helloImage
Możesz przejrzeć przykład JSON, którego chcesz użyć w helloImageTemplateforSIGfromSIG.json. Aby uzyskać informacje o pliku JSON, zobacz Tworzenie szablonu konstruktora obrazów maszyny wirtualnej platformy Azure.
Pobierz przykład JSON, jak pokazano w sekcji Tworzenie tożsamości przypisanej przez użytkownika i ustaw uprawnienia dla grupy zasobów.
Skonfiguruj kod JSON przy użyciu zmiennych:
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
Tworzenie obrazu
Prześlij konfigurację obrazu do usługi konstruktora obrazów maszyny wirtualnej:
az resource create \ --resource-group $sigResourceGroup \ --location $location \ --properties @helloImageTemplateforSIGfromWinSIG.json \ --is-full-object \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n imageTemplateforSIGfromWinSIG01
Uruchom kompilację obrazu:
az resource invoke-action \ --resource-group $sigResourceGroup \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n imageTemplateforSIGfromWinSIG01 \ --action Run
Przed przejściem do następnego kroku poczekaj na skompilowanie i zreplikowanie obrazu.
Tworzenie maszyny wirtualnej
Utwórz maszynę wirtualną, wykonując następujące czynności:
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
Weryfikowanie dostosowania
Utwórz połączenie pulpitu zdalnego z maszyną wirtualną przy użyciu nazwy użytkownika i hasła ustawionego podczas tworzenia maszyny wirtualnej. Na maszynie wirtualnej otwórz okno wiersza polecenia, a następnie uruchom polecenie:
dir c:\
Powinny zostać wyświetlone dwa katalogi:
- buildActions: utworzono w pierwszej wersji obrazu.
- buildActions2: utworzona podczas aktualizowania pierwszej wersji obrazu w celu utworzenia drugiej wersji obrazu.
Następne kroki
Aby dowiedzieć się więcej na temat składników pliku JSON użytego w tym artykule, zobacz Tworzenie szablonu konstruktora obrazów maszyny wirtualnej platformy Azure.