Een nieuwe VM-installatiekopieën maken op basis van een bestaande installatiekopieën met behulp van Azure VM Image Builder in Linux

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

In dit artikel leert u hoe u een bestaande versie van een installatiekopieën bijwerkt in een Azure Compute Gallery (voorheen Shared Image Gallery ) en deze als een nieuwe versie van de installatiekopieën naar de galerie publiceert.

Als u de installatiekopie wilt configureren, gebruikt u een voorbeeld-JSON-sjabloon, helloImageTemplateforSIGfromSIG.json.

De providers registreren

Als u VM Image Builder wilt gebruiken, moet u de providers registreren.

  1. Controleer uw providerregistraties. Zorg ervoor dat elke instantie Geregistreerd retourneert.

    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. Als ze niet worden geretourneerd Geregistreerd, registreert u de providers door de volgende opdrachten uit te voeren:

    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
    

Variabelen en machtigingen instellen

Als u al een Azure Compute Gallery hebt gemaakt met behulp van Een installatiekopieën maken en distribueren naar een Azure Compute Gallery, hebt u al een aantal variabelen gemaakt die u nodig hebt.

  1. Als u de variabelen nog niet hebt gemaakt, voert u de volgende opdrachten uit:

    # 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. Maak een variabele voor uw abonnements-id:

    subscriptionID=$(az account show --query id --output tsv)
    
  3. Haal de installatiekopieënversie op die u wilt bijwerken:

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

Een door de gebruiker toegewezen identiteit maken en machtigingen instellen voor de resourcegroep

U hebt de gebruikersidentiteit in een eerder voorbeeld ingesteld, dus nu moet u de resource-id ophalen, die wordt toegevoegd aan de sjabloon.

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

Als u al een Azure Compute Gallery hebt, maar deze niet hebt ingesteld door een eerder voorbeeld te volgen, moet u machtigingen toewijzen voor VM Image Builder om toegang te krijgen tot de resourcegroep, zodat deze toegang heeft tot de galerie. Zie Een installatiekopieën maken en distribueren naar een Azure Compute Gallery voor meer informatie.

Het helloImage-voorbeeld wijzigen

U kunt het JSON-voorbeeld bekijken dat u gaat gebruiken op helloImageTemplateforSIGfromSIG.json. Zie Een Azure VM Image Builder-sjabloon maken voor meer informatie over het JSON-bestand.

  1. Download het JSON-voorbeeld, zoals wordt weergegeven in Een Linux-installatiekopieën maken en distribueren naar een Azure Compute Gallery met behulp van de Azure CLI.

  2. Configureer de JSON met uw variabelen:

    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
    

De installatiekopie maken

  1. Verzend de installatiekopieënconfiguratie naar de VM Image Builder-service:

    az resource create \
        --resource-group $sigResourceGroup \
        --properties @helloImageTemplateforSIGfromSIG.json \
        --is-full-object \
        --resource-type Microsoft.VirtualMachineImages/imageTemplates \
        -n helloImageTemplateforSIGfromSIG01
    
  2. Start de build van de installatiekopieën:

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

Wacht totdat de installatiekopie is gemaakt en gerepliceerd voordat u verdergaat met de volgende stap.

De VM maken

  1. Maak de VIRTUELE machine als volgt:

    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. Maak een SSH-verbinding (Secure Shell) met behulp van het openbare IP-adres van de VIRTUELE machine.

    ssh azureuser@<pubIp>
    

    Nadat de SSH-verbinding tot stand is gebracht, ontvangt u het bericht 'Bericht van de dag' waarin staat dat de afbeelding is aangepast:

    *******************************************************
    **            This VM was built from the:            **
    **      !! AZURE VM IMAGE BUILDER Custom Image !!    **
    **         You have just been Customized :-)         **
    *******************************************************
    
  3. Typ exit om de SSH-verbinding te sluiten.

  4. Als u de installatiekopieën wilt weergeven die nu beschikbaar zijn in uw galerie, voert u het volgende uit:

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

Volgende stappen

Zie Een Azure VM Image Builder-sjabloon maken voor meer informatie over de onderdelen van het JSON-bestand dat u in dit artikel hebt gebruikt.