Een Bicep- of ARM JSON-sjabloon voor Azure Image Builder maken

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

Azure Image Builder gebruikt een Bicep-bestand of een ARM JSON-sjabloonbestand om informatie door te geven aan de Image Builder-service. In dit artikel worden de secties van de bestanden besproken, zodat u uw eigen bestanden kunt maken. Zie sjabloonreferentie voor de nieuwste API-versies. Zie Azure Image Builder GitHub voor voorbeelden van volledige .json-bestanden.

De basisindeling is:

{
  "type": "Microsoft.VirtualMachineImages/imageTemplates",
  "apiVersion": "2022-02-14",
  "location": "<region>",
  "tags": {
    "<name>": "<value>",
    "<name>": "<value>"
  },
  "identity": {},
  "properties": {
    "buildTimeoutInMinutes": <minutes>,
    "customize": [],
    "distribute": [],
    "source": {},
    "stagingResourceGroup": "/subscriptions/<subscriptionID>/resourceGroups/<stagingResourceGroupName>",
    "validate": {},
    "vmProfile": {
      "vmSize": "<vmSize>",
      "proxyVmSize": "<vmSize>",
      "osDiskSizeGB": <sizeInGB>,
      "vnetConfig": {
        "subnetId": "/subscriptions/<subscriptionID>/resourceGroups/<vnetRgName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>"
      },
      "userAssignedIdentities": [
              "/subscriptions/<subscriptionID>/resourceGroups/<identityRgName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName1>",
        "/subscriptions/<subscriptionID>/resourceGroups/<identityRgName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName2>",
        "/subscriptions/<subscriptionID>/resourceGroups/<identityRgName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName3>",
        ...
      ]
    }
  }
}

Type en API-versie

De type is het resourcetype, dat moet zijn Microsoft.VirtualMachineImages/imageTemplates. De apiVersion verandert in de loop van de tijd als de API verandert. Zie Wat is er nieuw in Azure VM Image Builder voor alle belangrijke API-wijzigingen en functie-updates voor de Azure VM Image Builder-service.

"type": "Microsoft.VirtualMachineImages/imageTemplates",
"apiVersion": "2022-02-14",

Locatie

De locatie is de regio waar de aangepaste installatiekopieën worden gemaakt. De volgende regio's worden ondersteund:

  • VS - oost
  • VS - oost 2
  • VS - west-centraal
  • VS - west
  • VS - west 2
  • US - west 3
  • VS - zuid-centraal
  • Europa - noord
  • Europa -west
  • Azië - zuidoost
  • Australië - zuidoost
  • Australië - oost
  • Verenigd Koninkrijk Zuid
  • Verenigd Koninkrijk West
  • Brazilië - zuid
  • Canada - midden
  • India - centraal
  • Central US
  • Frankrijk - centraal
  • Duitsland - west-centraal
  • Japan - oost
  • VS - noord-centraal
  • Noorwegen - oost
  • Zwitserland - noord
  • Jio India West
  • VAE - noord
  • Azië - oost
  • Korea - centraal
  • Zuid-Afrika - noord
  • Qatar - centraal
  • USGov Arizona (openbare preview)
  • USGov Virginia (openbare preview)
  • China - noord 3 (openbare preview)

Belangrijk

Registreer de functie Microsoft.VirtualMachineImages/FairfaxPublicPreview voor toegang tot de openbare preview van Azure Image Builder in Azure Government regio's (USGov Arizona en USGov Virginia).

Belangrijk

Registreer de functie Microsoft.VirtualMachineImages/MooncakePublicPreview voor toegang tot de openbare preview van Azure Image Builder in de regio China - noord 3.

Voor toegang tot de openbare preview van Azure VM Image Builder in de Fairfax-regio's (USGov Arizona en USGov Virginia), moet u de functie Microsoft.VirtualMachineImages/FairfaxPublicPreview registreren. Voer hiervoor de volgende opdracht uit in PowerShell of Azure CLI:

Register-AzProviderPreviewFeature -ProviderNamespace Microsoft.VirtualMachineImages -Name FairfaxPublicPreview

Als u toegang wilt krijgen tot de openbare preview van Azure VM Image Builder in de regio China - noord 3, moet u de functie Microsoft.VirtualMachineImages/MooncakePublicPreview registreren. Voer hiervoor de volgende opdracht uit in PowerShell of Azure CLI:

Register-AzProviderPreviewFeature -ProviderNamespace Microsoft.VirtualMachineImages -Name MooncakePublicPreview
"location": "<region>"

Gegevenslocatie

De Azure VM Image Builder-service slaat geen klantgegevens op buiten regio's met strikte vereisten voor gegevenslocatie voor één regio wanneer een klant een build in die regio aanvraagt. Als er een servicestoring is voor regio's met vereisten voor gegevenslocatie, moet u Bicep-bestanden/sjablonen maken in een andere regio en geografie.

Zoneredundantie

Distributie ondersteunt zoneredundantie, VHD's worden standaard gedistribueerd naar een ZRS-account (Zone Redundant Storage) en de versie van Azure Compute Gallery (voorheen bekend als Shared Image Gallery) ondersteunt een ZRS-opslagtype indien opgegeven.

Tags

Tags zijn sleutel-waardeparen die u kunt opgeven voor de afbeelding die wordt gegenereerd.

Identiteit

Er zijn twee manieren om door de gebruiker toegewezen identiteiten toe te voegen, zoals hieronder wordt uitgelegd.

Door de gebruiker toegewezen identiteit voor azure Image Builder-afbeeldingssjabloonresource

Vereist: als u wilt dat Image Builder machtigingen heeft voor het lezen/schrijven van installatiekopieën en het lezen van scripts vanuit Azure Storage, moet u een door de Azure-gebruiker toegewezen identiteit maken die machtigingen heeft voor de afzonderlijke resources. Zie Een installatiekopieën maken en een door de gebruiker toegewezen beheerde identiteit gebruiken om toegang te krijgen tot bestanden in een Azure-opslagaccount voor meer informatie over de werking van Image Builder-machtigingen en relevante stappen.

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "<imgBuilderId>": {}
    }
}

De door de gebruiker toegewezen identiteit van de Image Builder-service:

  • Ondersteunt slechts één identiteit.
  • Biedt geen ondersteuning voor aangepaste domeinnamen.

Zie Wat zijn beheerde identiteiten voor Azure-resources? voor meer informatie. Zie Beheerde identiteiten configureren voor Azure-resources op een Azure-VM met behulp van Azure CLI voor meer informatie over het implementeren van deze functie.

Door de gebruiker toegewezen identiteit voor de build-VM van Image Builder

Deze eigenschap is alleen beschikbaar in API-versies 2021-10-01 of nieuwer.

Optioneel: de build-VM van Image Builder, die is gemaakt door de Image Builder-service in uw abonnement, wordt gebruikt om de installatiekopieën te bouwen en aan te passen. Als u wilt dat de build-VM van Image Builder machtigingen heeft voor verificatie bij andere services, zoals Azure Key Vault in uw abonnement, moet u een of meer door de Gebruiker toegewezen Azure-identiteiten maken die machtigingen hebben voor de afzonderlijke resources. Azure Image Builder kan deze door de gebruiker toegewezen identiteiten vervolgens koppelen aan de build-VM. Aangepaste scripts die worden uitgevoerd in de build-VM kunnen vervolgens tokens voor deze identiteiten ophalen en zo nodig communiceren met andere Azure-resources. Houd er rekening mee dat de door de gebruiker toegewezen identiteit voor Azure Image Builder de roltoewijzing 'Managed Identity Operator' moet hebben voor alle door de gebruiker toegewezen identiteiten voor Azure Image Builder om deze te kunnen koppelen aan de build-VM.

Notitie

Houd er rekening mee dat er meerdere identiteiten kunnen worden opgegeven voor de build-VM van Image Builder, inclusief de identiteit die u hebt gemaakt voor de resource van de installatiekopieënsjabloon. Standaard wordt de identiteit die u hebt gemaakt voor de resource van de installatiekopieënsjabloon niet automatisch toegevoegd aan de build-VM.

"properties": {
  "vmProfile": {
    "userAssignedIdentities": [
      "/subscriptions/<subscriptionID>/resourceGroups/<identityRgName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityName>"
    ]
  }
}

De door de gebruiker toegewezen identiteit voor de build-VM van Image Builder:

  • Ondersteunt een lijst met een of meer door de gebruiker toegewezen beheerde identiteiten die moeten worden geconfigureerd op de VM.
  • Ondersteunt scenario's voor meerdere abonnementen (identiteit die in het ene abonnement is gemaakt, terwijl de installatiekopieënsjabloon wordt gemaakt in een ander abonnement onder dezelfde tenant).
  • Biedt geen ondersteuning voor scenario's voor meerdere tenants (identiteit die in de ene tenant wordt gemaakt terwijl de installatiekopieënsjabloon in een andere tenant wordt gemaakt).

Raadpleeg voor meer informatie:

Eigenschappen: buildTimeoutInMinutes

Maximale wachttijd tijdens het bouwen van de installatiekopieënsjabloon (inclusief alle aanpassingen, validaties en distributies).

Als u de eigenschap niet opgeeft of de waarde niet instelt op 0, wordt de standaardwaarde gebruikt, namelijk 240 minuten of vier uur. De minimumwaarde is 6 minuten en de maximumwaarde is 960 minuten of 16 uur. Wanneer de time-outwaarde wordt bereikt (ongeacht of de build van de installatiekopieën is voltooid), ziet u een fout die lijkt op:

[ERROR] Failed while waiting for packerizer: Timeout waiting for microservice to
[ERROR] complete: 'context deadline exceeded'

Voor Windows raden we niet aan minder dan 60 minuten in te stellen buildTimeoutInMinutes . Als u merkt dat de time-out optreedt, bekijkt u de logboeken om te zien of de aanpassingsstap wacht op iets als gebruikersinvoer. Als u meer tijd nodig hebt om aanpassingen te voltooien, verhoogt u de buildTimeoutInMinutes waarde. Maar stel deze niet te hoog in, omdat u mogelijk moet wachten totdat er een time-out optreedt voordat er een fout wordt weergegeven.

Eigenschappen: aanpassen

Image Builder ondersteunt meerdere 'aanpassers'. Dit zijn functies die worden gebruikt om uw installatiekopieën aan te passen, zoals het uitvoeren van scripts of het opnieuw opstarten van servers.

Bij gebruik van customize:

  • U kunt meerdere aanpassers gebruiken.
  • Aanpassers worden uitgevoerd in de volgorde die is opgegeven in de sjabloon.
  • Als één aanpasser mislukt, mislukt het hele aanpassingsonderdeel en wordt er een fout gerapporteerd.
  • Test de scripts grondig voordat u ze in een sjabloon gebruikt. Het is eenvoudiger om de scripts zelf op te sporen.
  • Plaats geen gevoelige gegevens in de scripts. Inline-opdrachten kunnen worden weergegeven in de definitie van de afbeeldingssjabloon. Als u gevoelige informatie hebt (zoals wachtwoorden, SAS-token, verificatietokens, enzovoort), moet deze worden verplaatst naar scripts in Azure Storage, waar verificatie is vereist.
  • De scriptlocaties moeten openbaar toegankelijk zijn, tenzij u MSI gebruikt.

De customize sectie is een matrix. De ondersteunde typen aanpassers zijn: File, PowerShell, Shell, WindowsRestart en WindowsUpdate.

"customize": [
  {
    "type": "File",
    "destination": "string",
    "sha256Checksum": "string",
    "sourceUri": "string"
  },
  {
    "type": "PowerShell",
    "inline": [ "string" ],
    "runAsSystem": "bool",
    "runElevated": "bool",
    "scriptUri": "string",
    "sha256Checksum": "string",
    "validExitCodes": [ "int" ]
  },
  {
    "type": "Shell",
    "inline": [ "string" ],
    "scriptUri": "string",
    "sha256Checksum": "string"
  },
  {
    "type": "WindowsRestart",
    "restartCheckCommand": "string",
    "restartCommand": "string",
    "restartTimeout": "string"
  },
  {
    "type": "WindowsUpdate",
    "filters": [ "string" ],
    "searchCriteria": "string",
    "updateLimit": "int"
  }
]

Shell-aanpasser

De Shell aanpasser ondersteunt het uitvoeren van shellscripts in Linux. De shellscripts moeten openbaar toegankelijk zijn of u moet een MSI voor Image Builder hebben geconfigureerd om er toegang toe te krijgen.

"customize": [
  {
    "type": "Shell",
    "name": "<name>",
    "scriptUri": "<link to script>",
    "sha256Checksum": "<sha256 checksum>"
  }
],
"customize": [
  {
    "type": "Shell",
    "name": "<name>",
    "inline": "<commands to run>"
  }
]

Eigenschappen aanpassen:

  • type – Shell.

  • name : naam voor het bijhouden van de aanpassing.

  • scriptUri - URI naar de locatie van het bestand.

  • inline : matrix van shell-opdrachten, gescheiden door komma's.

  • sha256Checksum : waarde van sha256-controlesom van het bestand, genereert u deze waarde lokaal en vervolgens controleert Image Builder de controlesom en valideert.

    De sha256Checksum genereren met behulp van een terminal op Mac/Linux: sha256sum <fileName>

Notitie

Inline-opdrachten worden opgeslagen als onderdeel van de definitie van de afbeeldingssjabloon. U kunt deze zien wanneer u de definitie van de installatiekopieën dumpt. Als u gevoelige opdrachten of waarden hebt (waaronder wachtwoorden, SAS-token, verificatietokens, enzovoort), is het raadzaam deze te verplaatsen naar scripts en een gebruikersidentiteit te gebruiken om te verifiëren bij Azure Storage.

Bevoegdheden van supergebruiker

Voorvoegsel van de opdrachten door sudo om ze uit te voeren met supergebruikersbevoegdheden. U kunt de opdrachten toevoegen aan scripts of deze inline-opdrachten gebruiken, bijvoorbeeld:

"type": "Shell",
"name": "setupBuildPath",
"inline": [
    "sudo mkdir /buildArtifacts",
    "sudo cp /tmp/index.html /buildArtifacts/index.html"
]

Voorbeeld van een script met sudo waarnaar u kunt verwijzen met behulp van scriptUri:

#!/bin/bash -e

echo "Telemetry: creating files"
mkdir /myfiles

echo "Telemetry: running sudo 'as-is' in a script"
sudo touch /myfiles/somethingElevated.txt

Windows-aanpasser voor opnieuw opstarten

Met WindowsRestart de aanpasser kunt u een Windows-VM opnieuw opstarten en wachten tot de VM weer online komt. Met deze aanpasser kunt u software installeren waarvoor opnieuw moet worden opgestart.

"customize": [
  {
    "type": "WindowsRestart",
    "restartCommand": "shutdown /r /f /t 0",
    "restartCheckCommand": "echo Azure-Image-Builder-Restarted-the-VM  > c:\\buildArtifacts\\azureImageBuilderRestart.txt",
    "restartTimeout": "5m"
  }
]

Eigenschappen aanpassen:

  • Type: WindowsRestart.
  • restartCommand - Opdracht om het opnieuw opstarten uit te voeren (optioneel). De standaardwaarde is 'shutdown /r /f /t 0 /c \"packer restart\"'.
  • restartCheckCommand : opdracht om te controleren of opnieuw opstarten is geslaagd (optioneel).
  • restartTimeout - Time-out voor opnieuw opstarten die is opgegeven als een tekenreeks van grootte en eenheid. Bijvoorbeeld 5m (5 minuten) of 2h (2 uur). De standaardwaarde is: 5m.

Notitie

Er is geen aangepaste linux-functie voor opnieuw opstarten.

PowerShell-aanpasser

De PowerShell aanpasser ondersteunt het uitvoeren van PowerShell-scripts en inline-opdrachten in Windows. De scripts moeten openbaar toegankelijk zijn voor de IB om er toegang toe te krijgen.

"customize": [
  {
    "type": "PowerShell",
    "name":   "<name>",
    "scriptUri": "<path to script>",
    "runElevated": <true false>,
    "sha256Checksum": "<sha256 checksum>"
  },
  {
    "type": "PowerShell",
    "name": "<name>",
    "inline": "<PowerShell syntax to run>",
    "validExitCodes": [<exit code>],
    "runElevated": <true or false>
  }
]

Eigenschappen aanpassen:

  • type : PowerShell.

  • scriptUri : URI naar de locatie van het PowerShell-scriptbestand.

  • inline : inline-opdrachten die moeten worden uitgevoerd, gescheiden door komma's.

  • validExitCodes : optionele, geldige codes die kunnen worden geretourneerd door de script-/inlineopdracht. De eigenschap voorkomt gerapporteerde fouten van de script-/inlineopdracht.

  • runElevated : optioneel, booleaanse waarde, ondersteuning voor het uitvoeren van opdrachten en scripts met verhoogde machtigingen.

  • sha256Checksum : genereer de SHA256-controlesom van het bestand lokaal, werk de controlesomwaarde bij naar kleine letters en Image Builder valideert de controlesom tijdens de implementatie van de installatiekopieënsjabloon.

    Gebruik de cmdlet Get-FileHash in PowerShell om de sha256Checksum te genereren.

Bestands-aanpasser

Met File de aanpasser kan Image Builder een bestand downloaden van een GitHub-opslagplaats of Azure-opslag. De aanpasser ondersteunt zowel Linux als Windows. Als u een build-pijplijn voor installatiekopieën hebt die afhankelijk is van buildartefacten, kunt u de bestandsaanpasser instellen om te downloaden van de buildshare en de artefacten naar de installatiekopieën verplaatsen.

"customize": [
  {
    "type": "File",
    "name": "<name>",
    "sourceUri": "<source location>",
    "destination": "<destination>",
    "sha256Checksum": "<sha256 checksum>"
  }
]

Eigenschappen van bestands aanpassen:

  • sourceUri : een toegankelijk opslageindpunt. Dit eindpunt kan GitHub of Azure Storage zijn. U kunt slechts één bestand downloaden, niet een hele map. Als u een map wilt downloaden, gebruikt u een gecomprimeerd bestand en decomprimeert u het bestand met behulp van de Shell- of PowerShell-aanpassers.

    Notitie

    Als de sourceUri een Azure Storage-account is, ongeacht of de blob is gemarkeerd als openbaar, moet u de beheerde gebruikersidentiteit machtigingen verlenen voor leestoegang voor de blob. Zie dit voorbeeld om de opslagmachtigingen in te stellen.

  • destination : het volledige doelpad en de bestandsnaam. Eventuele pad- en submappen waarnaar wordt verwezen, moeten bestaan. Gebruik de Shell- of PowerShell-aanpassers om deze paden vooraf in te stellen. U kunt de scriptaanpassers gebruiken om het pad te maken.

Deze aanpasser wordt ondersteund door Windows-mappen en Linux-paden, maar er zijn enkele verschillen:

  • Linux: het enige pad waar Image Builder naar kan schrijven is /tmp.
  • Windows: geen padbeperking, maar het pad moet wel bestaan.

Als er een fout optreedt bij het downloaden van het bestand of het in een opgegeven map plaatsen, mislukt de aanpassingsstap en wordt deze fout weergegeven in customization.log.

Notitie

De bestandsaanpasser is alleen geschikt voor het downloaden van kleine bestanden, < 20 MB. Voor het downloaden van grotere bestanden gebruikt u een script of inlineopdracht en gebruikt u vervolgens code om bestanden te downloaden, zoals Linux wget of curl, Windows, Invoke-WebRequest. Voor bestanden die zich in Azure Storage bevinden, moet u ervoor zorgen dat u een identiteit met machtigingen voor het weergeven van dat bestand toewijst aan de build-VM door de volgende documentatie te volgen: Door de gebruiker toegewezen identiteit voor de build-VM van Image Builder. Elk bestand dat niet is opgeslagen in Azure, moet openbaar toegankelijk zijn voor Azure Image Builder om het te kunnen downloaden.

  • sha256Checksum : genereer de SHA256-controlesom van het bestand lokaal, werk de controlesomwaarde bij naar kleine letters en Image Builder valideert de controlesom tijdens de implementatie van de installatiekopieënsjabloon.

    Gebruik de cmdlet Get-FileHash in PowerShell om de sha256Checksum te genereren.

Windows Update-aanpasser

De WindowsUpdate aanpasser is gebaseerd op de community Windows Update Provisioner for Packer, een open source project dat wordt onderhouden door de Packer-community. Microsoft test en valideert de inrichting met de Image Builder-service en ondersteunt het onderzoeken van problemen met de service en het oplossen van problemen, maar het open source-project wordt niet officieel ondersteund door Microsoft. Zie de projectopslagplaats voor gedetailleerde documentatie over en hulp bij de Windows Update Provisioner.

"customize": [
  {
    "type": "WindowsUpdate",
    "searchCriteria": "IsInstalled=0",
    "filters": [
      "exclude:$_.Title -like '*Preview*'",
      "include:$true"
    ],
    "updateLimit": 20
  }
]

Eigenschappen van de aanpasser:

  • type – WindowsUpdate.
  • searchCriteria - Optioneel, definieert welk type updates worden geïnstalleerd (zoals Aanbevolen of Belangrijk), BrowseOnly=0 en IsInstalled=0 (Aanbevolen) is de standaardinstelling.
  • filters : optioneel, kunt u een filter opgeven om updates op te nemen of uit te sluiten.
  • updateLimit : optioneel, definieert het aantal updates dat kan worden geïnstalleerd, standaard 1000.

Notitie

De Windows Update customizer kan mislukken als er openstaande windows-herstarts zijn of als er nog steeds toepassingsinstallaties worden uitgevoerd. Meestal ziet u deze fout in customization.log, System.Runtime.InteropServices.COMException (0x80240016): Exception from HRESULT: 0x80240016. Het is raadzaam om windows opnieuw opstarten toe te voegen en/of toepassingen voldoende tijd te geven om hun installaties te voltooien met behulp van slaap- of wachtopdrachten in de inlineopdrachten of scripts voordat u Windows Update uitvoert.

Generaliseren

Standaard voert Azure Image Builder ook code uit deprovision aan het einde van elke aanpassingsfase van de installatiekopieën om de installatiekopieën te generaliseren. Generaliseren is een proces waarbij de installatiekopieën zo worden ingesteld dat deze opnieuw kan worden gebruikt om meerdere VM's te maken. Voor Windows-VM's maakt Azure Image Builder gebruik van Sysprep. Voor Linux voert Azure Image Builder uit waagent -deprovision.

De opdrachten die gebruikers van Image Builder moeten generaliseren, zijn mogelijk niet geschikt voor elke situatie, dus u kunt deze opdracht zo nodig aanpassen met Azure Image Builder.

Als u bestaande aanpassingen migreert en u verschillende Sysprep-/waagent-opdrachten gebruikt, kunt u de algemene opdrachten van Image Builder gebruiken en als het maken van de VM mislukt, uw eigen Sysprep- of waagent-opdrachten gebruiken.

Als Azure Image Builder een aangepaste Windows-installatiekopieën maakt en u er een VIRTUELE machine van maakt, moet u vaststellen dat het maken van de VM mislukt of niet is voltooid. Raadpleeg de Documentatie voor Windows Server Sysprep of dien een ondersteuningsaanvraag in bij het ondersteuningsteam van Windows Server Sysprep, dat problemen kan oplossen en adviseren over het juiste Sysprep-gebruik.

Sysprep-standaardopdracht

Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
while ((Get-Service RdAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
while ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Sysprepping VM ...'
if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
  Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
}
& $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
while($true) {
  $imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
  Write-Output $imageState
  if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
  Start-Sleep -s 5
}
Write-Output '>>> Sysprep complete ...'

Standaardopdracht voor het ongedaan maken van de inrichting van Linux

WAAGENT=/usr/sbin/waagent
waagent -version 1> /dev/null 2>&1
if [ $? -eq 0 ]; then
  WAAGENT=waagent
fi
$WAAGENT -force -deprovision+user && export HISTSIZE=0 && sync

De opdrachten overschrijven

Als u de opdrachten wilt overschrijven, gebruikt u de PowerShell- of Shell-scriptinrichtingen om de opdrachtbestanden met de exacte bestandsnaam te maken en deze in de juiste mappen te plaatsen:

  • Windows: c:\DeprovisioningScript.ps1
  • Linux: /tmp/DeprovisioningScript.sh

Image Builder leest deze opdrachten. Deze opdrachten worden naar de AIB-logboeken geschreven, customization.log. Zie Problemen oplossen voor het verzamelen van logboeken.

Eigenschappen: distribueren

Azure Image Builder ondersteunt drie distributiedoelen:

  • ManagedImage - Beheerde installatiekopie.
  • sharedImage - Azure Compute Gallery.
  • VHD : VHD in een opslagaccount.

U kunt een installatiekopieën distribueren naar beide doeltypen in dezelfde configuratie.

Notitie

De sysprep-standaardopdracht van AIB bevat geen '/mode:vm', maar deze eigenschap is mogelijk vereist bij het maken van installatiekopieën waarop de HyperV-rol is geïnstalleerd. Als u dit opdrachtargument wilt toevoegen, moet u de sysprep-opdracht overschrijven.

Omdat u meerdere doelen kunt hebben om naar te distribueren, houdt Image Builder een status bij voor elk distributiedoel dat kan worden geopend door een query uit te voeren op de runOutputName. De runOutputName is een object waarop u na de distributie een query kunt uitvoeren voor informatie over die distributie. U kunt bijvoorbeeld een query uitvoeren op de locatie van de VHD, of regio's waarnaar de versie van de installatiekopieën is gerepliceerd, of de sig-installatiekopieënversie die is gemaakt. Dit is een eigenschap van elk distributiedoel. De runOutputName moet uniek zijn voor elk distributiedoel. Hier volgt een voorbeeld voor het uitvoeren van query's op een Azure Compute Gallery-distributie:

subscriptionID=<subcriptionID>
imageResourceGroup=<resourceGroup of image template>
runOutputName=<runOutputName>

az resource show \
  --ids "/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.VirtualMachineImages/imageTemplates/ImageTemplateLinuxRHEL77/runOutputs/$runOutputName"  \
  --api-version=2021-10-01

Uitvoer:

{
  "id": "/subscriptions/xxxxxx/resourcegroups/rheltest/providers/Microsoft.VirtualMachineImages/imageTemplates/ImageTemplateLinuxRHEL77/runOutputs/rhel77",
  "identity": null,
  "kind": null,
  "location": null,
  "managedBy": null,
  "name": "rhel77",
  "plan": null,
  "properties": {
    "artifactId": "/subscriptions/xxxxxx/resourceGroups/aibDevOpsImg/providers/Microsoft.Compute/galleries/devOpsSIG/images/rhel/versions/0.24105.52755",
    "provisioningState": "Succeeded"
  },
  "resourceGroup": "rheltest",
  "sku": null,
  "tags": null,
  "type": "Microsoft.VirtualMachineImages/imageTemplates/runOutputs"
}

Distribueren: managedImage

De uitvoer van de installatiekopieën is een beheerde installatiekopieënresource.

{
  "type":"managedImage",
  "imageId": "<resource ID>",
  "location": "<region>",
  "runOutputName": "<name>",
  "artifactTags": {
      "<name>": "<value>",
      "<name>": "<value>"
  }
}

Eigenschappen distribueren:

  • type – managedImage
  • imageId : resource-id van de doelafbeelding, verwachte indeling: /subscriptions/<subscriptionId>/resourceGroups/<destinationResourceGroupName>/providers/Microsoft.Compute/images/<imageName>
  • location : locatie van de beheerde installatiekopieën.
  • runOutputName : unieke naam voor het identificeren van de distributie.
  • artifactTags : optionele door de gebruiker opgegeven sleutel\waardetags.

Notitie

De doelresourcegroep moet bestaan. Als u de installatiekopieën wilt distribueren naar een andere regio, neemt de implementatietijd toe.

Distribueren: sharedImage

De Azure Compute Gallery is een nieuwe service voor installatiekopieënbeheer waarmee u de replicatie van de regio van de installatiekopieën, versiebeheer en het delen van aangepaste installatiekopieën kunt beheren. Azure Image Builder ondersteunt distributie met deze service, zodat u installatiekopieën kunt distribueren naar regio's die worden ondersteund door Azure Compute-galerieën.

een Azure Compute Gallery bestaat uit:

  • Galerie : container voor meerdere installatiekopieën. Een galerie wordt geïmplementeerd in één regio.
  • Definities van afbeeldingen : een conceptuele groepering voor afbeeldingen.
  • Versies van installatiekopieën : een installatiekopieëntype dat wordt gebruikt voor het implementeren van een VM of schaalset. Versies van installatiekopieën kunnen worden gerepliceerd naar andere regio's waar VM's moeten worden geïmplementeerd.

Voordat u naar de galerie kunt distribueren, moet u een galerie en een definitie van een afbeelding maken. Zie Een galerie maken.

{
  "type": "SharedImage",
  "galleryImageId": "<resource ID>",
  "runOutputName": "<name>",
  "artifactTags": {
      "<name>": "<value>",
      "<name>": "<value>"
  },
  "replicationRegions": [
      "<region where the gallery is deployed>",
      "<region>"
  ]
}

Eigenschappen voor galerieën distribueren:

  • type - sharedImage

  • galleryImageId : id van de Azure Compute Gallery. Deze eigenschap kan in twee indelingen worden opgegeven:

    • Automatisch versiebeheer - Image Builder genereert een monotone versienummer voor u. Deze eigenschap is handig voor wanneer u installatiekopieën van dezelfde sjabloon wilt blijven herbouwen: De indeling is: /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/galleries/<sharedImageGalleryName>/images/<imageGalleryName>.
    • Expliciet versiebeheer: u kunt het versienummer doorgeven dat image builder moet gebruiken. De indeling is: /subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/<sharedImageGalName>/images/<imageDefName>/versions/<version - for example: 1.1.1>
  • runOutputName : unieke naam voor het identificeren van de distributie.

  • artifactTags - optionele door de gebruiker opgegeven sleutel\waardetags.

  • replicationRegions : matrix van regio's voor replicatie. Een van de regio's moet de regio zijn waar de galerie is geïmplementeerd. Het toevoegen van regio's betekent een toename van de buildtijd, omdat de build pas wordt voltooid als de replicatie is voltooid.

  • excludeFromLatest (optioneel): hiermee kunt u de versie van de installatiekopieën die u maakt markeren als de meest recente versie in de definitie van de galerie. De standaardwaarde is 'false'.

  • storageAccountType (optioneel): AIB ondersteunt het opgeven van deze typen opslag voor de versie van de installatiekopieën die moeten worden gemaakt:

    • "Standard_LRS"
    • "Standard_ZRS"","

Notitie

Als de afbeeldingssjabloon en waarnaar wordt verwezen image definition zich niet op dezelfde locatie bevinden, krijgt u extra tijd om installatiekopieën te maken. Image Builder heeft location momenteel geen parameter voor de resource van de versie van de installatiekopieën. We nemen deze van het bovenliggende image definitionelement. Als er bijvoorbeeld een definitie van een installatiekopieën is in westus en u de versie van de installatiekopieën wilt repliceren naar eastus, wordt er een blob gekopieerd naar westus, wordt er een versieresource voor de installatiekopieën in westus gemaakt en vervolgens gerepliceerd naar eastus. Als u de extra replicatietijd wilt voorkomen, moet u ervoor zorgen dat de image definition sjabloon en installatiekopieën zich op dezelfde locatie bevinden.

Distribueren: VHD

U kunt uitvoeren naar een VHD. Vervolgens kunt u de VHD kopiëren en deze gebruiken om te publiceren naar Azure MarketPlace of te gebruiken met Azure Stack.

{
  "type": "VHD",
  "runOutputName": "<VHD name>",
  "artifactTags": {
      "<name>": "<value>",
      "<name>": "<value>"
  }
}

Ondersteuning voor het besturingssysteem: Windows en Linux

VHD-parameters distribueren:

  • type - VHD.
  • runOutputName : unieke naam voor het identificeren van de distributie.
  • tags : optionele door de gebruiker opgegeven sleutelwaardepaartags.

Azure Image Builder staat niet toe dat de gebruiker de locatie van een opslagaccount opgeeft, maar u kunt de status van de runOutputs opvragen om de locatie op te halen.

az resource show \
  --ids "/subscriptions/$subscriptionId/resourcegroups/<imageResourceGroup>/providers/Microsoft.VirtualMachineImages/imageTemplates/<imageTemplateName>/runOutputs/<runOutputName>"  | grep artifactUri

Notitie

Zodra de VHD is gemaakt, kopieert u deze zo snel mogelijk naar een andere locatie. De VHD wordt opgeslagen in een opslagaccount in de tijdelijke resourcegroep die is gemaakt wanneer de installatiekopieënsjabloon wordt verzonden naar de Azure Image Builder-service. Als u de installatiekopieënsjabloon verwijdert, gaat de VHD verloren.

Eigenschappen: bron

De source sectie bevat informatie over de broninstallatiekopieën die door Image Builder worden gebruikt. Azure Image Builder ondersteunt alleen gegeneraliseerde installatiekopieën als broninstallatiekopieën. Gespecialiseerde installatiekopieën worden momenteel niet ondersteund.

De API vereist een SourceType die de bron voor de build van de installatiekopieën definieert. Er zijn momenteel drie typen:

  • PlatformImage : aangegeven dat de broninstallatiekopie een Marketplace-installatiekopie is.
  • ManagedImage: wordt gebruikt bij het starten van een normale beheerde installatiekopie.
  • SharedImageVersion: wordt gebruikt wanneer u een versie van een installatiekopie in een Azure Compute Gallery als bron gebruikt.

Notitie

Wanneer u bestaande aangepaste Windows-installatiekopieën gebruikt, kunt u de Sysprep-opdracht maximaal drie keer uitvoeren op één Installatiekopieën van Windows 7 of Windows Server 2008 R2, of 1001 keer op één Windows-installatiekopieën voor latere versies; Zie de sysprep-documentatie voor meer informatie.

PlatformImage-bron

Azure Image Builder ondersteunt Windows Server en client en Linux Azure Marketplace-installatiekopieën. Zie Meer informatie over Azure Image Builder voor de volledige lijst.

"source": {
  "type": "PlatformImage",
  "publisher": "Canonical",
  "offer": "UbuntuServer",
  "sku": "18.04-LTS",
  "version": "latest"
}

De eigenschappen hier zijn dezelfde die worden gebruikt voor het maken van VM's, met behulp van AZ CLI, voer de onderstaande uit om de eigenschappen op te halen:

az vm image list -l westus -f UbuntuServer -p Canonical --output table --all

U kunt in de versie gebruiken latest . De versie wordt geëvalueerd wanneer de installatiekopieën worden gebouwd, niet wanneer de sjabloon wordt verzonden. Als u deze functionaliteit gebruikt met het doel van de Azure Compute Gallery, kunt u voorkomen dat de sjabloon opnieuw wordt ingediend en kunt u de build van de installatiekopieën met intervallen opnieuw uitvoeren, zodat uw installatiekopieën opnieuw worden gemaakt op basis van de meest recente installatiekopieën.

Ondersteuning voor informatie over marktplannen

U kunt ook plangegevens opgeven, bijvoorbeeld:

"source": {
  "type": "PlatformImage",
  "publisher": "RedHat",
  "offer": "rhel-byos",
  "sku": "rhel-lvm75",
  "version": "latest",
  "planInfo": {
    "planName": "rhel-lvm75",
    "planProduct": "rhel-byos",
    "planPublisher": "redhat"
  }
}

ManagedImage-bron

Hiermee stelt u de broninstallatiekopieën in als een bestaande beheerde installatiekopieën van een gegeneraliseerde VHD of VM.

Notitie

De beheerde broninstallatiekopieën moeten van een ondersteund besturingssysteem zijn en de installatiekopieën moeten zich in hetzelfde abonnement en dezelfde regio bevinden als uw Azure Image Builder-sjabloon.

"source": {
  "type": "ManagedImage",
  "imageId": "/subscriptions/<subscriptionId>/resourceGroups/{destinationResourceGroupName}/providers/Microsoft.Compute/images/<imageName>"
}

De imageId moet de ResourceId van de beheerde installatiekopieën zijn. Gebruik az image list om beschikbare installatiekopieën weer te geven.

SharedImageVersion-bron

Hiermee stelt u de broninstallatiekopieën in als een bestaande versie van de installatiekopieën in een Azure Compute Gallery.

Notitie

De versie van de gedeelde broninstallatiekopieën moet van een ondersteund besturingssysteem zijn en de versie van de installatiekopieën moet zich in dezelfde regio bevinden als uw Azure Image Builder-sjabloon. Als dat niet het probleem is, repliceert u de versie van de installatiekopieën naar de regio Image Builder-sjabloon.

"source": {
  "type": "SharedImageVersion",
  "imageVersionID": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Compute/galleries/<sharedImageGalleryName>/images/<imageDefinitionName/versions/<imageVersion>"
}

De imageVersionId moet de ResourceId van de versie van de installatiekopieën zijn. Gebruik az sig image-version list om versies van installatiekopieën weer te geven.

Eigenschappen: stagingResourceGroup

De stagingResourceGroup eigenschap bevat informatie over de faseringsresourcegroep die de Image Builder-service maakt voor gebruik tijdens het bouwen van de installatiekopieën. De stagingResourceGroup is een optionele eigenschap voor iedereen die meer controle wil over de resourcegroep die door Image Builder is gemaakt tijdens het maken van de installatiekopieën. U kunt uw eigen resourcegroep maken en opgeven in de stagingResourceGroup sectie of Image Builder een resourcegroep laten maken namens u.

"properties": {
  "stagingResourceGroup": "/subscriptions/<subscriptionID>/resourceGroups/<stagingResourceGroupName>"
}

Scenario's voor het maken van sjablonen

  • De eigenschap stagingResourceGroup blijft leeg

    Als de stagingResourceGroup eigenschap niet is opgegeven of opgegeven met een lege tekenreeks, maakt de Image Builder-service een faseringsresourcegroep met de standaardnaamconventie 'IT_***'. Op de faseringsresourcegroep worden de standaardtags toegepast: createdBy, imageTemplateName, imageTemplateResourceGroupName. Ook wordt de standaard-RBAC toegepast op de identiteit die is toegewezen aan de Azure Image Builder-sjabloonresource, die 'Inzender' is.

  • De eigenschap stagingResourceGroup wordt opgegeven met een resourcegroep die bestaat

    Als de stagingResourceGroup eigenschap is opgegeven met een resourcegroep die wel bestaat, controleert de Image Builder-service of de resourcegroep niet is gekoppeld aan een andere afbeeldingssjabloon, leeg is (geen resources in), zich in dezelfde regio bevindt als de afbeeldingssjabloon en of 'Inzender' of 'Eigenaar' RBAC is toegepast op de identiteit die is toegewezen aan de azure Image Builder-sjabloonresource. Als niet aan een van de bovenstaande vereisten wordt voldaan, wordt er een fout gegenereerd. Aan de faseringsresourcegroep worden de volgende tags toegevoegd: usedBy, imageTemplateName, imageTemplateResourceGroupName. Bestaande tags worden niet verwijderd.

Belangrijk

U moet de rol van inzender toewijzen aan de resourcegroep voor de service-principal die overeenkomt met de eigen app van Azure Image Builder wanneer u een bestaande resourcegroep en VNet wilt opgeven voor de Azure Image Builder-service met een Windows-broninstallatiekopieën. Zie de volgende documentatie Problemen met VM Azure Image Builder oplossen voor instructies voor de CLI-opdracht en portal over het toewijzen van de rol inzender aan de resourcegroep : Autorisatiefout bij het maken van een schijf

  • De eigenschap stagingResourceGroup wordt opgegeven met een resourcegroep die niet bestaat

    Als de stagingResourceGroup eigenschap is opgegeven met een resourcegroep die niet bestaat, maakt de Image Builder-service een faseringsresourcegroep met de naam die in de stagingResourceGroup eigenschap is opgegeven. Er treedt een fout op als de opgegeven naam niet voldoet aan de naamgevingsvereisten van Azure voor resourcegroepen. Op de faseringsresourcegroep worden de standaardtags toegepast: createdBy, imageTemplateName, imageTemplateResourceGroupName. Standaard wordt op de identiteit die is toegewezen aan de resource van de Azure Image Builder-afbeeldingssjabloon de RBAC Inzender toegepast in de resourcegroep.

Sjabloon verwijderen

Elke faseringsresourcegroep die door de Image Builder-service is gemaakt, wordt verwijderd nadat de installatiekopieënsjabloon is verwijderd. De verwijdering omvat faseringsresourcegroepen die zijn opgegeven in de stagingResourceGroup eigenschap, maar niet bestonden vóór de build van de installatiekopie.

Als Image Builder niet de faseringsresourcegroep heeft gemaakt, maar de resources in de resourcegroep, worden deze resources verwijderd nadat de installatiekopiesjabloon is verwijderd, mits de Image Builder-service de juiste machtigingen of rol heeft die nodig zijn om resources te verwijderen.

Eigenschappen: valideren

U kunt de validate eigenschap gebruiken om platforminstallatiekopieën en aangepaste installatiekopieën die u maakt te valideren, ongeacht of u Azure Image Builder hebt gebruikt om ze te maken.

Azure Image Builder ondersteunt de modus Alleen bronvalidatie die kan worden ingesteld met behulp van de sourceValidationOnly eigenschap . Als de sourceValidationOnly eigenschap is ingesteld op true, wordt de afbeelding die in de source sectie is opgegeven, rechtstreeks gevalideerd. Er wordt geen afzonderlijke build uitgevoerd om een aangepaste installatiekopieën te genereren en vervolgens te valideren.

De inVMValidations eigenschap maakt gebruik van een lijst met validaties die worden uitgevoerd op de installatiekopieën. Azure Image Builder ondersteunt bestands-, PowerShell- en Shell-validators.

De continueDistributeOnFailure eigenschap is verantwoordelijk voor of de uitvoerinstallatiekopieën worden gedistribueerd als de validatie mislukt. Als de validatie mislukt en deze eigenschap is ingesteld op false, worden de uitvoerafbeeldingen standaard niet gedistribueerd. Als de validatie mislukt en deze eigenschap is ingesteld op true, worden de uitvoerafbeeldingen nog steeds gedistribueerd. Wees voorzichtig met deze optie, omdat dit ertoe kan leiden dat mislukte installatiekopieën worden gedistribueerd voor gebruik. In beide gevallen (waar of onwaar), wordt de end-to-end-installatiekopie uitgevoerd als mislukt als er een validatiefout optreedt. Deze eigenschap heeft geen invloed op het al dan niet slagen van de validatie.

Bij gebruik van validate:

  • U kunt meerdere validators gebruiken.
  • Validators worden uitgevoerd in de volgorde die is opgegeven in de sjabloon.
  • Als één validatie mislukt, mislukt het hele validatieonderdeel en wordt een fout gerapporteerd.
  • U wordt aangeraden het script grondig te testen voordat u het in een sjabloon gebruikt. Foutopsporing in het script op uw eigen VM is eenvoudiger.
  • Plaats geen gevoelige gegevens in de scripts.
  • De scriptlocaties moeten openbaar toegankelijk zijn, tenzij u MSI gebruikt.

De eigenschap gebruiken validate om Windows-installatiekopieën te valideren:

{
   "properties":{
      "validate":{
         "continueDistributeOnFailure":false,
         "sourceValidationOnly":false,
         "inVMValidations":[
            {
               "type":"File",
               "destination":"string",
               "sha256Checksum":"string",
               "sourceUri":"string"
            },
            {
               "type":"PowerShell",
               "name":"test PowerShell validator inline",
               "inline":[
                  "<command to run inline>"
               ],
               "validExitCodes":"<exit code>",
               "runElevated":"<true or false>",
               "runAsSystem":"<true or false>"
            },
            {
               "type":"PowerShell",
               "name":"<name>",
               "scriptUri":"<path to script>",
               "runElevated":"<true false>",
               "sha256Checksum":"<sha256 checksum>"
            }
         ]
      }
   }
}

inVMValidations Eigenschappen:

  • type : PowerShell.

  • name - naam van de validator

  • scriptUri - URI van het PowerShell-scriptbestand.

  • inline : matrix van opdrachten die moeten worden uitgevoerd, gescheiden door komma's.

  • validExitCodes : optionele, geldige codes die kunnen worden geretourneerd door de script-/inlineopdracht. Dit voorkomt een gerapporteerde fout van de script-/inlineopdracht.

  • runElevated : optioneel, booleaanse ondersteuning voor het uitvoeren van opdrachten en scripts met verhoogde machtigingen.

  • sha256Checksum - Waarde van sha256-controlesom van het bestand, genereert u deze lokaal en vervolgens image builder controlesom en valideert.

    De sha256Checksum genereren met behulp van een PowerShell in Windows Get-Hash

De eigenschap gebruiken validate om Linux-installatiekopieën te valideren:

{
  "properties": {
    "validate": {
      "continueDistributeOnFailure": false,
      "sourceValidationOnly": false,
      "inVMValidations": [
        {
          "type": "Shell",
          "name": "<name>",
          "inline": [
            "<command to run inline>"
          ]
        },
        {
          "type": "Shell",
          "name": "<name>",
          "scriptUri": "<path to script>",
          "sha256Checksum": "<sha256 checksum>"
        }
      ]
    }
  }
 }

inVMValidations Eigenschappen:

  • type – Shell

  • name - naam van de validator

  • scriptUri - URI van het scriptbestand

  • inline : matrix van opdrachten die moeten worden uitgevoerd, gescheiden door komma's.

  • sha256Checksum - Waarde van sha256-controlesom van het bestand, genereert u deze lokaal en vervolgens image builder controlesom en valideert.

    De sha256Checksum genereren met behulp van een terminal op Mac/Linux: sha256sum <fileName>

Eigenschappen: vmProfile

vmSize (optioneel)

Image Builder gebruikt een standaard-SKU-grootte van Standard_D1_v2 voor Gen1-installatiekopieën en Standard_D2ds_v4 voor Gen2-installatiekopieën. De generatie wordt gedefinieerd door de installatiekopieën die u opgeeft in de source. U kunt vmSize om de volgende redenen overschrijven:

  • Het uitvoeren van aanpassingen die meer geheugen, CPU en verwerking van grote bestanden (GB's) vereisen.
  • Als u Windows-builds uitvoert, moet u 'Standard_D2_v2' of een vergelijkbare VM-grootte gebruiken.
  • VM-isolatie vereisen.
  • Pas een installatiekopieën aan waarvoor specifieke hardware is vereist. Voor een GPU-VM hebt u bijvoorbeeld een GPU-VM-grootte nodig.
  • End-to-endversleuteling vereisen bij rest van de build-VM. U moet de grootte van de build-VM opgeven die geen lokale tijdelijke schijven gebruiken.

osDiskSizeGB

Image Builder wijzigt standaard de grootte van de installatiekopieën niet, maar gebruikt de grootte van de broninstallatiekopieën. U kunt desgewenst alleen de grootte van de besturingssysteemschijf (Win en Linux) vergroten. Een waarde van 0 betekent dat u dezelfde grootte moet behouden als de broninstallatiekopieën. U kunt de grootte van de besturingssysteemschijf niet verkleinen tot kleiner dan de grootte van de broninstallatiekopieën.

{
  "osDiskSizeGB": 100
}

vnetConfig (optioneel)

Als u geen VNet-eigenschappen opgeeft, maakt Image Builder een eigen VNet, openbaar IP-adres en netwerkbeveiligingsgroep (NSG). Het openbare IP-adres wordt gebruikt voor de service om te communiceren met de build-VM. Als u geen openbaar IP-adres wilt hebben of image builder toegang wilt geven tot uw bestaande VNet-resources, zoals configuratieservers (DSC, Chef, Puppet, Ansible), bestandsshares, kunt u een VNet opgeven. Raadpleeg de netwerkdocumentatie voor meer informatie.

"vnetConfig": {
  "subnetId": "/subscriptions/<subscriptionID>/resourceGroups/<vnetRgName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>"
}

Bewerkingen voor afbeeldingssjablonen

Een build van een installatiekopieën starten

Als u een build wilt starten, moet u 'Uitvoeren' aanroepen in de resource Afbeeldingssjabloon, voorbeelden van run opdrachten:

Invoke-AzResourceAction -ResourceName $imageTemplateName -ResourceGroupName $imageResourceGroup -ResourceType Microsoft.VirtualMachineImages/imageTemplates -ApiVersion "2021-10-01" -Action Run -Force
az resource invoke-action \
  --resource-group $imageResourceGroup \
  --resource-type  Microsoft.VirtualMachineImages/imageTemplates \
  -n helloImageTemplateLinux01 \
  --action Run

Een build van installatiekopieën annuleren

Als u een build van een installatiekopieën uitvoert waarvan u denkt dat deze onjuist is en wacht op gebruikersinvoer, of als u denkt dat deze nooit met succes wordt voltooid, kunt u de build annuleren.

De build kan op elk gewenst moment worden geannuleerd. Als de distributiefase is gestart, kunt u nog steeds annuleren, maar u moet installatiekopieën opschonen die mogelijk niet zijn voltooid. Met de opdracht annuleren wordt niet gewacht tot de annulering is voltooid, maar wordt gecontroleerd lastrunstatus.runstate of de voortgang wordt geannuleerd met behulp van deze statusopdrachten.

Voorbeelden van cancel opdrachten:

Invoke-AzResourceAction -ResourceName $imageTemplateName -ResourceGroupName $imageResourceGroup -ResourceType Microsoft.VirtualMachineImages/imageTemplates -ApiVersion "2021-10-01" -Action Cancel -Force
az resource invoke-action \
  --resource-group $imageResourceGroup \
  --resource-type  Microsoft.VirtualMachineImages/imageTemplates \
  -n helloImageTemplateLinux01 \
  --action Cancel

Volgende stappen

Er zijn voorbeeld-JSON-bestanden voor verschillende scenario's in de Azure Image Builder GitHub.