Membuat versi gambar mesin virtual baru dari versi gambar yang sudah ada dengan menggunakan Azure Image Builder di Linux
Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel
Artikel ini menunjukkan cara mengambil versi gambar yang ada di Azure Compute Gallery (sebelumnya dikenal sebagai Shared Image Gallery), dan menerbitkannya sebagai versi gambar baru ke galeri.
Untuk mengonfigurasi gambar, Anda menggunakan contoh templat JSON, helloImageTemplateforSIGfromSIG.json.
Mendaftarkan penyedia
Untuk menggunakan VM Image Builder, Anda perlu mendaftarkan penyedia.
Periksa pendaftaran penyedia Anda. Pastikan tiap-tiap fitur menampilkan status Terdaftar.
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
Jika mereka tidak menampilkan status Terdaftar, daftarkan penyedia dengan menjalankan perintah berikut:
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
Mengatur variabel dan izin
Jika Anda telah membuat Azure Compute Gallery menggunakan Buat gambar dan distribusikan ke Azure Compute Gallery, Anda telah membuat beberapa variabel yang kami butuhkan.
Jika Anda belum membuat variabel, jalankan perintah berikut:
# 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
Buat variabel untuk ID langganan Anda:
subscriptionID=$(az account show --query id --output tsv)
Dapatkan versi gambar yang ingin Anda perbarui:
sigDefImgVersionId=$(az sig image-version list \ -g $sigResourceGroup \ --gallery-name $sigName \ --gallery-image-definition $imageDefName \ --subscription $subscriptionID --query [].'id' -o tsv)
Membuat identitas yang ditetapkan pengguna dan mengatur izin pada grup sumber daya
Anda telah menyiapkan identitas pengguna dalam contoh sebelumnya, jadi sekarang Anda perlu mendapatkan ID sumber daya, yang akan ditambahkan ke templat.
#get identity used previously
imgBuilderId=$(az identity list -g $sigResourceGroup --query "[?contains(name, 'aibBuiUserId')].id" -o tsv)
Jika Anda sudah memiliki Azure Compute Gallery tetapi tidak menyiapkannya dengan mengikuti contoh sebelumnya, Anda perlu menetapkan izin bagi VM Image Builder untuk mengakses grup sumber daya sehingga dapat mengakses galeri. Untuk informasi selengkapnya, lihat Membuat gambar dan mendistribusikannya ke Azure Compute Gallery.
Mengubah contoh helloImage
Anda dapat meninjau contoh JSON yang akan Anda gunakan di helloImageTemplateforSIGfromSIG.json. Untuk informasi tentang file JSON, lihat Membuat templat Azure VM Image Builder.
Unduh contoh JSON, seperti yang ditunjukkan pada Membuat gambar Linux dan mendistribusikannya ke Azure Compute Gallery menggunakan Azure CLI.
Konfigurasikan JSON dengan variabel Anda:
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
Membuat gambar
Kirim konfigurasi gambar ke layanan VM Image Builder:
az resource create \ --resource-group $sigResourceGroup \ --properties @helloImageTemplateforSIGfromSIG.json \ --is-full-object \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n helloImageTemplateforSIGfromSIG01
Mulai kompilasi citra:
az resource invoke-action \ --resource-group $sigResourceGroup \ --resource-type Microsoft.VirtualMachineImages/imageTemplates \ -n helloImageTemplateforSIGfromSIG01 \ --action Run
Tunggu hingga gambar dibuat dan direplikasi sebelum Anda melanjutkan ke langkah berikutnya.
Buat VM
Buat VM dengan melakukan hal berikut:
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
Membuat sambungan Secure Shell (SSH) dengan menggunakan alamat IP umum dari mesin virtual.
ssh azureuser@<pubIp>
Setelah koneksi SSH dibuat, Anda akan menerima "Pesan Hari Ini" yang mengatakan bahwa gambar telah disesuaikan:
******************************************************* ** This VM was built from the: ** ** !! AZURE VM IMAGE BUILDER Custom Image !! ** ** You have just been Customized :-) ** *******************************************************
Ketik
exit
untuk menutup sambungan SSH.Anda juga dapat membuat daftar versi gambar yang sekarang tersedia di galeri Anda, jalankan:
az sig image-version list -g $sigResourceGroup -r $sigName -i $imageDefName -o table
Langkah berikutnya
Untuk mempelajari selengkapnya tentang komponen file JSON yang digunakan dalam artikel ini, lihat templat Buat Azure VM Image Builder.