Linux'ta Azure VM Görüntü Oluşturucusu'nu kullanarak mevcut bir görüntüden yeni BIR VM görüntüsü oluşturma

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Bu makalede, Azure İşlem Galerisi'nde (eski adıyla Paylaşılan Görüntü Galerisi) var olan bir görüntü sürümünü güncelleştirmeyi ve yeni görüntü sürümü olarak galeride yayımlamayı öğreneceksiniz.

Görüntüyü yapılandırmak için örnek bir JSON şablonu (helloImageTemplateforSIGfromSIG.json) kullanırsınız.

Sağlayıcıları kaydetme

VM Görüntü Oluşturucusu'nu kullanmak için sağlayıcıları kaydetmeniz gerekir.

  1. Sağlayıcı kayıtlarınızı denetleyin. Her birinin Kayıtlı değerini döndürdüğüne emin olun.

    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. Kayıtlı döndürmezlerse, aşağıdaki komutları çalıştırarak sağlayıcıları kaydedin:

    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
    

Değişkenleri ve izinleri ayarlama

Görüntü oluştur'u kullanarak zaten bir Azure İşlem Galerisi oluşturduysanız ve bunu bir Azure İşlem Galerisi'ne dağıttıysanız, ihtiyacınız olan değişkenlerin bazılarını zaten oluşturdunuz.

  1. Değişkenleri henüz oluşturmadıysanız aşağıdaki komutları çalıştırın:

    # 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. Abonelik kimliğiniz için bir değişken oluşturun:

    subscriptionID=$(az account show --query id --output tsv)
    
  3. Güncelleştirmek istediğiniz görüntü sürümünü alın:

    sigDefImgVersionId=$(az sig image-version list \
      -g $sigResourceGroup \
      --gallery-name $sigName \
      --gallery-image-definition $imageDefName \
      --subscription $subscriptionID --query [].'id' -o tsv)
    

Kullanıcı tarafından atanan bir kimlik oluşturma ve kaynak grubunda izinleri ayarlama

Kullanıcı kimliğini daha önceki bir örnekte ayarlamıştınız, bu nedenle şimdi şablona eklenecek kaynak kimliğini almanız gerekir.

#get identity used previously
imgBuilderId=$(az identity list -g $sigResourceGroup --query "[?contains(name, 'aibBuiUserId')].id" -o tsv)

Zaten bir Azure İşlem Galeriniz varsa ancak önceki bir örneği izleyerek ayarlamadıysanız, VM Görüntü Oluşturucusu'nun galeriye erişebilmesi için kaynak grubuna erişmesi için izinler atamanız gerekir. Daha fazla bilgi için bkz . Görüntü oluşturma ve azure işlem galerisine dağıtma.

helloImage örneğini değiştirme

Kullanmak üzere olduğunuz JSON örneğini helloImageTemplateforSIGfromSIG.json adresinden gözden geçirebilirsiniz. JSON dosyası hakkında bilgi için bkz . Azure VM Görüntü Oluşturucusu şablonu oluşturma.

  1. Linux görüntüsü oluşturma bölümünde gösterildiği gibi JSON örneğini indirin ve Azure CLI kullanarak bunu bir Azure İşlem Galerisi'ne dağıtın.

  2. JSON'ı değişkenlerinizle yapılandırın:

    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
    

Görüntü oluşturma

  1. Görüntü yapılandırmasını VM Görüntü Oluşturucusu hizmetine gönderin:

    az resource create \
        --resource-group $sigResourceGroup \
        --properties @helloImageTemplateforSIGfromSIG.json \
        --is-full-object \
        --resource-type Microsoft.VirtualMachineImages/imageTemplates \
        -n helloImageTemplateforSIGfromSIG01
    
  2. Görüntü derlemesini başlatın:

    az resource invoke-action \
        --resource-group $sigResourceGroup \
        --resource-type  Microsoft.VirtualMachineImages/imageTemplates \
        -n helloImageTemplateforSIGfromSIG01 \
        --action Run 
    

Sonraki adıma geçmeden önce görüntünün derlenmesini ve çoğaltılması için bekleyin.

Sanal makineyi oluşturma

  1. Aşağıdakileri yaparak VM'yi oluşturun:

    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. VM'nin genel IP adresini kullanarak VM'ye güvenli kabuk (SSH) bağlantısı oluşturun.

    ssh azureuser@<pubIp>
    

    SSH bağlantısı kurulduktan sonra görüntünün özelleştirildiğini belirten bir "Günün İletisi" almanız gerekir:

    *******************************************************
    **            This VM was built from the:            **
    **      !! AZURE VM IMAGE BUILDER Custom Image !!    **
    **         You have just been Customized :-)         **
    *******************************************************
    
  3. SSH bağlantısını kapatmak için yazın exit .

  4. Galerinizde kullanılabilen görüntü sürümlerini listelemek için şunu çalıştırın:

    az sig image-version list -g $sigResourceGroup -r $sigName -i $imageDefName -o table
    

Sonraki adımlar

Bu makalede kullandığınız JSON dosyasının bileşenleri hakkında daha fazla bilgi edinmek için bkz . Azure VM Görüntü Oluşturucusu şablonu oluşturma.