Freigeben über


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

Gilt für: Azure Local 2311.2 und spätere Versionen

Dieser Artikel beschreibt, wie Sie Azure lokale VMs erstellen, die von Azure Arc aktiviert werden und Quellimages aus dem Azure Storage-Konto verwenden. Sie können VM-Images mithilfe des Azure-Portals oder der Azure CLI erstellen und dann diese VM-Images verwenden, um lokale Azure-VMs zu erstellen.

Voraussetzungen

Bevor Sie beginnen, sollten Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind.

  • Überprüfen Sie die Voraussetzungen und stellen Sie sicher, dass Sie sie erfüllen.

  • Für benutzerdefinierte Images im Azure Storage-Konto müssen Sie die folgenden zusätzlichen Voraussetzungen erfüllen:

    • Sie sollten eine VHD in Ihrem Azure Storage-Konto geladen haben. Sehen Sie hier, wie Sie ein VHD-Image in Ihr Azure Storage Konto hochladen.
    • Stellen Sie sicher, dass Sie Ihre VHD- oder VHDX-Datei als Seitenblobimage in das Speicherkonto hochladen. Nur Seitenblobimages werden unterstützt, um VM-Images über das Speicherkonto zu erstellen.
    • Wenn Sie eine VHDX verwenden:
      • Das VHDX-Image muss vom Typ Gen 2 sein und sicheres Booten ermöglichen.
      • Das VHDX-Image muss mithilfe von sysprep /generalize /shutdown /oobe vorbereitet werden. Weitere Informationen finden Sie unter Sysprep Befehlszeilenoptionen.

VM-Image vom Azure Storage-Konto hinzufügen

Sie erstellen ein VM-Image ausgehend von einem Image in Ihrem Azure Storage-Konto und verwenden dieses Image dann für die Bereitstellung von VMs auf Ihrem Azure Local.

Folgen Sie diesen Schritten, um ein VM-Image mit der Azure CLI zu erstellen.

Anmelden und Festlegen eines Abonnements

  1. Stellen Sie eine Verbindung mit einem Computer auf Ihrer Azure Local-Instanz her.

  2. Melden Sie sich an. 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, Ihre Ressourcengruppe, Ihren Speicherort, den Pfad zum Image in der lokalen Freigabe und den Betriebssystemtyp für das Image fest. Ersetzen Sie die Parameter in < > 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 = '"<Blob SAS URL path to the source image in the storage account>"'

Hinweis

Für $imageSourcePath muss der String durch doppelte Anführungszeichen maskiert und dann wie folgt in einfache Anführungszeichen eingeschlossen werden: '""'.

Die Parameter werden in der folgenden Tabelle beschrieben:

Parameter Beschreibung
subscription Abonnement für Azure Local, das Sie mit diesem Bild verknüpfen.
resource_group Ressourcengruppe für Azure Local, die Sie mit diesem Bild verknüpfen.
location Speicherort für Ihre Azure Local-Instanz. Beispielsweise kann das eastus sein.
imageName Der Name des erstellten VM-Images beginnt mit dem Image in Ihrer lokalen Freigabe.
Hinweis: Azure lehnt alle Namen ab, die das Schlüsselwort Windows enthalten.
imageSourcePath Blob SAS-URL-Pfad zum Quellbild im Speicherkonto. Anweisungen finden Sie unter Generieren von SAS-Token.
Hinweis: Die Pfadzeichenfolge muss durch doppelte Anführungszeichen und dann durch einfache Anführungszeichen wie folgt eingeschlossen werden: '""'
os-type Betriebssystem, das mit dem Quell-Image verbunden 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"'

VM-Image aus dem Image im Azure Storage-Konto erstellen

  1. Wählen Sie einen benutzerdefinierten Ort für die Bereitstellung Ihres VM-Images. Der benutzerdefinierte Speicherort sollte dem benutzerdefinierten Speicherort für Ihr Azure Local entsprechen. Rufen Sie die ID des benutzerdefinierten Standorts für Ihre Azure Local-Instanz 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 ausgehend von einem bestimmten Marktplatz-Image. Stellen Sie sicher, dass Sie das Angebot, den Verlag, die Artikelnummer und die Version für das Marktplatzbild 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 mit dem Flag --storage-path-id angegeben. Dadurch wurde sichergestellt, dass die Workload-Daten (einschließlich der VM, des VM-Images und der Nicht-OS-Datenfestplatte) im angegebenen Speicherpfad abgelegt werden.

    Wenn das Kennzeichen nicht angegeben wird, werden die Workload-Daten automatisch in einem Hochverfügbarkeits-Speicherpfad abgelegt.

Die Bereitstellung des Images dauert einige Minuten. Die Zeit, die für den Download des Bildes benötigt wird, hängt von der Größe des Bildes 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>

VM-Images auflisten

Sie müssen sich die Liste der VM-Images ansehen, um ein Image zur Verwaltung auszuwählen.

Folgen Sie diesen Schritten, um das VM-Image mit Azure CLI aufzulisten.

  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. Listen Sie alle VM-Images auf, die mit Ihrem Azure Local verbunden sind. Führen Sie den folgenden Befehl aus:

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

    Je nach verwendetem Befehl wird ein entsprechender Satz von Bildern aufgelistet, die mit Ihrem Azure Local verbunden sind.

    • Wenn Sie nur das Abonnement angeben, listet der Befehl alle Bilder in diesem 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 Images, die sich entweder in Ihrem Azure Storage-Konto oder in einer lokalen Freigabe auf Ihrem System oder auf einem mit Ihrem System verbundenen Client befinden.

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 unter az stack-hci-vm image list.

Eigenschaften von VM-Images anzeigen

Sie sollten sich die Eigenschaften von VM-Images ansehen, bevor Sie das Image zur Erstellung einer VM verwenden. Folgen Sie diesen Schritten, um die Bildeigenschaften anzuzeigen:

Folgen Sie diesen Schritten, um mit Azure CLI die Eigenschaften eines Images anzuzeigen:

  1. Führen Sie PowerShell als Administrator aus.

  2. Stellen Sie die folgenden Parameter ein.

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

    1. Stellen Sie den folgenden Parameter ein.

      $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 sehen Sie 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

Sie können ein VM-Image löschen, wenn der Download aus irgendeinem Grund fehlschlägt oder wenn das Image nicht mehr benötigt wird. Gehen Sie folgendermaßen vor, 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 Bilder auf zwei Arten löschen:

  • Geben Sie den Namen und die 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 ein Beispiel für die Ausgabe, wenn das Bild unter Angabe des Namens und der Ressourcengruppe gelöscht wurde.

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