Freigeben über


Erstellen eines lokalen Azure-VM-Images mithilfe des Images im Azure Storage-Konto

Gilt für: Azure Local, Version 23H2

In diesem Artikel wird beschrieben, wie Sie Vm-Images für Azure Local mithilfe von Quellimages aus dem Azure Storage-Konto erstellen. Sie können VM-Images mithilfe des Azure-Portal oder der Azure CLI erstellen und dann diese VM-Images verwenden, um Arc-VMs auf Azure Local zu erstellen.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen abgeschlossen sind.

  • Überprüfen und abschließen Sie die Voraussetzungen.

  • Für benutzerdefinierte Images im Azure Storage-Konto haben Sie die folgenden zusätzlichen Voraussetzungen:

    • Sie sollten eine VHD in Ihrem Azure Storage-Konto geladen haben. Erfahren Sie, wie Sie ein VHD-Image in Ihrem Azure Storage-Konto hochladen.
    • Stellen Sie sicher, dass Sie Ihre VHD oder VHDX als Seiten-BLOB-Bild in das Speicherkonto hochladen. Nur Seiten-BLOB-Images werden unterstützt, um VM-Images über das Speicherkonto zu erstellen.
    • Bei Verwendung eines VHDX:
      • Das VHDX-Image muss vom Typ "Gen 2" sein und "Sicherer Start" aktiviert sein.
      • Das VHDX-Image muss mithilfe von sysprep /generalize /shutdown /oobe. Weitere Informationen finden Sie unter Sysprep-Befehlszeilenoptionen.

Hinzufügen eines VM-Images aus dem Azure Storage-Konto

Sie erstellen ein VM-Image beginnend mit einem Image im Azure Storage-Konto und verwenden dann dieses Image, um virtuelle Computer auf Ihrem lokalen Azure bereitzustellen.

Führen Sie die folgenden Schritte aus, um ein VM-Image mithilfe der Azure CLI zu erstellen.

Anmelden und Festlegen des Abonnements

  1. Stellen Sie eine Verbindung mit einem Computer auf Ihrem lokalen Azure-Computer her.

  2. Anmelden. Typ:

    az login --use-device-code
    
  3. Legen Sie Ihr Abonnement fest.

    az account set --subscription <Subscription ID>
    

Festlegen einiger Parameter

  1. Legen Sie Ihr Abonnement, die Ressourcengruppe, den Standort, den Pfad zum Image in der lokalen Freigabe und den Betriebssystemtyp für das Image fest. Ersetzen Sie die Parameter < > durch die entsprechenden Werte.
$subscription = "<Subscription ID>"
$resource_group = "<Resource group>"
$location = "<Location for your Azure Local>"
$osType = "<OS of source image>"
$imageName = "<VM image name>"
$imageSourcePath = "<path to the source image in the Storage account>"

Die Parameter werden in der folgenden Tabelle beschrieben:

Parameter Beschreibung
subscription Abonnement für Azure Local, das Sie diesem Image zuordnen.
resource_group Ressourcengruppe für Azure Local, die Sie diesem Image zuordnen.
location Speicherort für Ihre lokale Azure-Instanz. Das kann beispielsweise eastus sein.
imageName Name des vm-Images, das erstellt wurde, beginnend mit dem Image in Ihrer lokalen Freigabe.
Hinweis: Azure lehnt alle Namen ab, die das Schlüsselwort Windows enthalten.
imageSourcePath Pfad zur BLOB SAS-URL des Bilds im Speicherkonto. Weitere Informationen finden Sie in den Anweisungen zum Abrufen einer BLOB-SAS-URL des Bilds im Speicherkonto.
Hinweis: Stellen Sie sicher, dass alle Kaufmännischen Und-Zeichen im Pfad mit doppelten Anführungszeichen escapet werden und die gesamte Pfadzeichenfolge in einfache Anführungszeichen eingeschlossen wird.
os-type Betriebssystem, das dem Quellimage zugeordnet ist. Dies kann Windows oder Linux sein.

Hier ist eine Beispielausgabe:

PS C:\Users\azcli> $subscription = "<Subscription ID>"
PS C:\Users\azcli> $resource_group = "mylocal-rg"
PS C:\Users\azcli> $location = "eastus"
PS C:\Users\azcli> $osType = "Windows"
PS C:\Users\azcli> $imageName = "mylocal-storacctimage"
PS C:\Users\azcli> $imageSourcePath = 'https://vmimagevhdsa1.blob.core.windows.net/vhdcontainer/Windows_InsiderPreview_ServerStandard_en-us_VHDX_25131.vhdx?sp=r"&"st=2022-08-05T18:41:41Z"&"se=2022-08-06T02:41:41Z"&"spr=https"&"sv=2021-06-08"&"sr=b"&"sig=X7A98cQm%2FmNRaHmTbs9b4OWVv%2F9Q%2FJkWDBHVPyAc8jo%3D'

Erstellen eines VM-Images aus dem Image im Azure Storage-Konto

  1. Wählen Sie einen benutzerdefinierten Speicherort aus, um Ihr VM-Image bereitzustellen. Der benutzerdefinierte Speicherort sollte dem benutzerdefinierten Speicherort für Ihr Azure Local entsprechen. Rufen Sie die benutzerdefinierte Standort-ID für Ihr Lokales Azure ab. Führen Sie den folgenden Befehl aus:

    $customLocationID=(az customlocation show --resource-group $resource_group --name "<custom location name for your Azure Local>" --query id -o tsv)
    
  2. Erstellen Sie das VM-Image beginnend mit einem angegebenen Marketplace-Image. Stellen Sie sicher, dass Sie das Angebot, den Herausgeber, die Sku und die Version für das Marketplace-Image angeben.

    az stack-hci-vm image create --subscription $subscription --resource-group $resource_Group --custom-location $customLocationID --location $location --name $imageName --os-type $osType --image-path $imageSourcePath --storage-path-id $storagepathid
    

    Ein Bereitstellungsauftrag wird für das VM-Image gestartet.

    In diesem Beispiel wurde der Speicherpfad mithilfe des --storage-path-id Flags angegeben und sichergestellt, dass die Workloaddaten (einschließlich vm, VM-Image, Nicht-Betriebssystemdatenträger) im angegebenen Speicherpfad platziert werden.

    Wenn das Flag nicht angegeben ist, werden die Workloaddaten automatisch in einem Speicherpfad mit hoher Verfügbarkeit platziert.

Die Imagebereitstellung dauert einige Minuten, bis sie abgeschlossen sind. Die Zeit zum Herunterladen des Bilds hängt von der Größe des Bilds im Azure Storage-Konto und der für den Download verfügbaren Netzwerkbandbreite ab.

Hier ist eine Beispielausgabe:

PS > $customLocationID=(az customlocation show --resource-group $resource_group --name "mylocal-cl" --query id -o tsv)
PS C:\Users\azcli> az stack-hci-vm image create --subscription $subscription --resource-group $resource_Group --custom-location $customLocationID --location $location --name $imageName --os-type $osType --image-path $imageSourcePath --storage-path-id $storagepathid
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
  "extendedLocation": {
    "name": "/subscriptions/<Subscription ID>/resourceGroups/mylocal-rg/providers/Microsoft.ExtendedLocation/customLocations/mylocal-cl",
    "type": "CustomLocation"
  },
  "id": "/subscriptions/<Subscription ID>/resourceGroups/mylocal-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-storacctimage",
  "location": "eastus",
  "name": "windos",
  "properties": {
    "identifier": null,
    "imagePath": null,
    "osType": "Windows",
    "provisioningState": "Succeeded",
    "status": {
      "downloadStatus": {
        "downloadSizeInMB": 7876
      },
        "progressPercentage": 100,
      "provisioningStatus": {
        "operationId": "cdc9c9a8-03a1-4fb6-8738-7a8550c87fd1*31CE1EA001C4B3E38EE29B78ED1FD47CCCECF78B4CEA9E9A85C0BAEA5F6D80CA",
        "status": "Succeeded"
      }
    },
    "storagepathId": "/subscriptions/<Subscription ID>/resourceGroups/mylocal-rg/providers/Microsoft.AzureStackHCI/storagecontainers/mylocal-storagepath",
    "version": null
  },
  "resourceGroup": "mylocal-rg",
  "systemData": {
    "createdAt": "2023-11-03T20:17:10.971662+00:00",
    "createdBy": "guspinto@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-03T21:08:01.190475+00:00",
    "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
    "lastModifiedByType": "Application"
  },
  "tags": null,
  "type": "microsoft.azurestackhci/galleryimages"
}
PS C:\Users\azcli>

Auflisten von VM-Images

Sie müssen die Liste der VM-Images anzeigen, um ein zu verwaltenes Image auszuwählen.

Führen Sie die folgenden Schritte aus, um das VM-Image mithilfe der Azure CLI auflisten.

  1. Führen Sie PowerShell als Administrator aus.

  2. Legen Sie einige Parameter fest.

    $subscription = "<Subscription ID associated with your Azure Local>"
    $resource_group = "<Resource group name for your Azure Local>"
    
  3. Auflisten aller VM-Images, die Ihrem lokalen Azure zugeordnet sind. Führen Sie den folgenden Befehl aus:

    az stack-hci-vm image list --subscription $subscription --resource-group $resource_group
    

    Je nach verwendetem Befehl werden eine entsprechende Gruppe von Bildern aufgeführt, die Ihrem lokalen Azure Zugeordnet sind.

    • Wenn Sie nur das Abonnement angeben, listet der Befehl alle Bilder im Abonnement auf.
    • Wenn Sie sowohl das Abonnement als auch die Ressourcengruppe angeben, listet der Befehl alle Bilder in der Ressourcengruppe auf.

    Zu diesen Images gehören:

    • VM-Images aus Marketplace-Images.
    • Benutzerdefinierte Bilder, die sich in Ihrem Azure Storage-Konto befinden oder sich in einer lokalen Freigabe auf Ihrem System oder einem Client befinden, der mit Ihrem System verbunden ist.

Hier ist eine Beispielausgabe.

PS C:\Users\azcli> az stack-hci-vm image list --subscription "<Subscription ID>" --resource-group "myhci-rg"
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
[
  {
    "extendedLocation": {
      "name": "/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/myhci-cl",
      "type": "CustomLocation"
    },
    "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/microsoft.azurestackhci/marketplacegalleryimages/w
inServer2022Az-01",
    "location": "eastus",
    "name": "winServer2022Az-01",
    "properties": {
      "hyperVGeneration": "V2",
      "identifier": {
        "offer": "windowsserver",
        "publisher": "microsoftwindowsserver",
        "sku": "2022-datacenter-azure-edition-core"
      },
      "imagePath": null,
      "osType": "Windows",
      "provisioningState": "Succeeded",
      "status": {
        "downloadStatus": {
          "downloadSizeInMB": 6710
        },
        "progressPercentage": 100,
        "provisioningStatus": {
          "operationId": "19742d69-4a00-4086-8f17-4dc1f7ee6681*E1E9889F0D1840B93150BD74D428EAE483CB67B0904F9A198C161AD471F670ED",
          "status": "Succeeded"
        }
      },
      "storagepathId": null,
      "version": {
        "name": "20348.2031.231006",
        "properties": {
          "storageProfile": {
            "osDiskImage": {
              "sizeInMB": 130050
            }
          }
        }
      }
    },
    "resourceGroup": "mylocal-rg",
    "systemData": {
      "createdAt": "2023-10-30T21:44:53.020512+00:00",
      "createdBy": "guspinto@contoso.com",
      "createdByType": "User",
      "lastModifiedAt": "2023-10-30T22:08:25.495995+00:00",
      "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
      "lastModifiedByType": "Application"
    },
    "tags": {},
    "type": "microsoft.azurestackhci/marketplacegalleryimages"
  }
]
PS C:\Users\azcli>

Weitere Informationen zu diesem CLI-Befehl finden Sie in der Imageliste "az stack-hci-vm".

Anzeigen von VM-Imageeigenschaften

Möglicherweise möchten Sie die Eigenschaften von VM-Images anzeigen, bevor Sie das Image verwenden, um einen virtuellen Computer zu erstellen. Führen Sie die folgenden Schritte aus, um die Bildeigenschaften anzuzeigen:

Führen Sie die folgenden Schritte aus, um die Eigenschaften eines Bilds mithilfe der Azure CLI anzuzeigen:

  1. Führen Sie PowerShell als Administrator aus.

  2. Legen Sie die folgenden Parameter fest.

    $subscription = "<Subscription ID>"
    $resource_group = "<Azure Local resource group>"
    $mktplaceImage = "<Marketplace image name>"
    
  3. Sie können Bildeigenschaften auf zwei verschiedene Arten anzeigen: ID angeben oder Namen und Ressourcengruppe angeben. Führen Sie die folgenden Schritte aus, wenn Sie die Marketplace-Image-ID angeben:

    1. Legen Sie den folgenden Parameter fest.

      $mktplaceImageID = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-marketplaceimage"
      
    2. Führen Sie den folgenden Befehl aus, um die Eigenschaften anzuzeigen.

      az stack-hci-vm image show --ids $mktplaceImageID

      Hier ist eine Beispielausgabe für diesen Befehl:

      PS C:\Users\azcli> az stack-hci-vm image show --ids $mktplaceImageID
      Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
      {
        "extendedLocation": {
          "name": "/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/mylocal-cl",
          "type": "CustomLocation"
        },
        "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-marketplaceimage",
        "location": "eastus",
        "name": "mylocal-marketplaceimage",
        "properties": {
          "containerName": null,
          "hyperVGeneration": null,
          "identifier": null,
          "imagePath": null,
          "osType": "Windows",
          "provisioningState": "Succeeded",
          "status": null,
          "version": null
        },
        "resourceGroup": "mylocal-rg",
        "systemData": {
          "createdAt": "2022-08-05T20:52:38.579764+00:00",
          "createdBy": "guspinto@microsoft.com",
          "createdByType": "User",
          "lastModifiedAt": "2022-08-05T20:52:38.579764+00:00",
          "lastModifiedBy": "guspinto@microsoft.com",
          "lastModifiedByType": "User"
        },
        "tags": null,
        "type": "microsoft.azurestackhci/galleryimages"
      }
      PS C:\Users\azcli> 
      

VM-Image löschen

Möglicherweise möchten Sie ein VM-Image löschen, wenn der Download aus irgendeinem Grund fehlschlägt oder wenn das Image nicht mehr benötigt wird. Führen Sie die folgenden Schritte aus, um die VM-Images zu löschen.

  1. Führen Sie PowerShell als Administrator aus.

  2. Legen Sie die folgenden Parameter fest:

    $subscription = "<Subscription ID>"
    $resource_group = "<Azure Local resource group>"
    $mktplaceImage = "<Markeplace image name>"    
    
  3. Entfernen Sie ein vorhandenes VM-Image. Führen Sie den folgenden Befehl aus:

    az stack-hci-vm image delete --subscription $subscription --resource-group $resource_group --name $mktplaceImage --yes
    

Sie können das Bild auf zwei Arten löschen:

  • Geben Sie Namen und Ressourcengruppe an.
  • Geben Sie die ID an.

Nachdem Sie ein Bild gelöscht haben, können Sie überprüfen, ob das Bild entfernt wurde. Hier sehen Sie eine Beispielausgabe, als das Bild gelöscht wurde, indem Sie den Namen und die Ressourcengruppe angeben.

PS C:\Users\azcli> $subscription = "<Subscription ID>"
PS C:\Users\azcli> $resource_group = "mylocal-rg"
PS C:\Users\azcli> $mktplaceImage = "mymylocal-marketplaceimage"
PS C:\Users\azcli> az stack-hci-vm image delete --name $mktplaceImage --resource-group $resource_group
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Are you sure you want to perform this operation? (y/n): y
PS C:\Users\azcli> az stack-hci-vm image show --name $mktplaceImage --resource-group $resource_group
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
ResourceNotFound: The Resource 'Microsoft.AzureStackHCI/marketplacegalleryimages/myhci-marketplaceimage' under resource group 'mylocal-rg' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
PS C:\Users\azcli>

Nächste Schritte