Bagikan melalui


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.

  1. 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
    
  2. 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.

  1. 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
    
  2. Buat variabel untuk ID langganan Anda:

    subscriptionID=$(az account show --query id --output tsv)
    
  3. 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.

  1. Unduh contoh JSON, seperti yang ditunjukkan pada Membuat gambar Linux dan mendistribusikannya ke Azure Compute Gallery menggunakan Azure CLI.

  2. 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

  1. 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
    
  2. 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

  1. 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
    
  2. 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 :-)         **
    *******************************************************
    
  3. Ketik exit untuk menutup sambungan SSH.

  4. 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.