Eine virtuelle Appliance ist ein Paket, das Speicherabbilder und die Hardwarekonfiguration für eine virtuelle Maschine (VM) enthält.
Ein weit verbreitetes und beliebtes Format für virtuelle Appliances ist das OVF-Format.
Wenn Sie virtuelle Appliances im OVF-Format packen, generieren Sie ein OVF-Paket. Ein OVF-Paket ist ein Ordner, der eine .ovf
-Deskriptordatei und eine Sammlung anderer Ressourcen wie Laufwerke enthält. Wird ein OVF-Paket in einer einzelnen Datei archiviert, wird es als OVA-Datei bezeichnet.
Sie können VMs im OVF-Format in Compute Engine importieren, unabhängig davon, ob sie in einem OVF-Paket oder in einer einzelnen OVA-Datei vorliegen. Lesen Sie Migrationspfad auswählen, um zu prüfen, ob die Verwendung einer virtuellen Appliance für Ihren Anwendungsfall die beste Wahl ist.
Wenn Sie eine virtuelle Appliance importieren, werden beim Import die in der Deskriptordatei gespeicherten Informationen verwendet, um eine VM-Instanz in Compute Engine zu erstellen und zu starten.
So können Sie OVA- und OVF-Dateien in Compute Engine importieren:
- Virtuelle Appliances als Instanz importieren. Weitere Informationen finden Sie unter OVA-Datei importieren und OVF-Datei importieren.
- Virtuelle Appliances als Maschinen-Image importieren. Weitere Informationen finden Sie unter Maschinen-Image aus einer virtuellen Appliance importieren.
Hinweise
- Wenn für das Projekt, in das Sie die virtuelle Appliance importieren möchten, eine Trusted Image-Richtlinie definiert ist, fügen Sie
projects/compute-image-import
undprojects/compute-image-tools
zur Liste der zulässigen Herausgeber hinzu. - Wenn Sie eine virtuelle Appliance aus einem anderen Projekt importieren, finden Sie weitere Informationen unter Projektübergreifend importieren.
- Informationen zu den Anforderungen für das Importieren von Images finden Sie unter Voraussetzungen für den Import und Export von VM-Images.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Virtuelle Laufwerke müssen im VMDK- oder VHD-Format vorliegen.
Virtuelle Laufwerke dürfen nicht verschlüsselt sein.
Sie können das Precheck-Tool ausführen, um zu prüfen, ob Ihre VM die Anforderungen erfüllt.
- Für alle Windows-Betriebssysteme muss Version 3 von PowerShell oder höher installiert sein. PowerShell-Versionen, die älter als Version 3.0 sind, können Probleme mit den während des Importvorgangs verwendeten Start- und Shutdown-Skripts verursachen.
Für alle Linux-Distributionen muss das Bootlaufwerk die folgenden Anforderungen erfüllen:
- Auf dem Bootlaufwerk muss GRUB installiert sein.
- Das Bootlaufwerk darf sich nicht über mehrere physische Laufwerke erstrecken. Ein Laufwerk, das mit einem Logical Volume Manager partitioniert wird, wird nicht unterstützt. Wenn sich das Laufwerk über mehrere physische Laufwerke erstreckt, startet die aus der OVF-Datei erstellte VM möglicherweise nicht in Compute Engine.
- Die OVF-Datei muss die in der OVF-Spezifikation beschriebene
Level 1
-Portabilität bieten. Virtuelle Appliances mitLevel 2
-Portabilität können zwar importiert werden, aber alle benutzerdefinierten Erweiterungen wie Details des Quell-Hypervisors werden während des Importvorgangs ignoriert. - Die OVF-Datei darf nur eine VM enthalten. Wenn mehrere VMs vorhanden sind, wird nur die erste VM importiert.
- Das erste Laufwerk in der OVF-Datei muss bootfähig sein.
- Informationen zu virtuellen Laufwerken, die aus dem Element
DiskSection
des OVF-Pakets abgerufen werden Informationen zu CPU und Arbeitsspeicher, die aus dem Element
ResourceAllocationSection
des OVF-Pakets abgerufen werdenWenn die CPU- oder Arbeitsspeicherkonfigurationen außerhalb der Grenzen des unterstützten Bereichs in Compute Engine liegen, legt der Importprozess die Werte auf das Maximum fest, das in Compute Engine unterstützt wird.
Details zum Bootlaufwerk, die aus dem Element
BootDeviceSection
des OVF-Pakets abgerufen werdenDetails zum Gastbetriebssystem, die aus dem Element
OperatingSystemSection
des OVF-Pakets abgerufen werdenDie Informationen zum Gastbetriebssystem werden verwendet, um die richtigen Treiber und Gastumgebungspakete für die importierte Instanz zu installieren. Wenn die im OVF-Paket gefundenen Informationen zum Gastbetriebssystem falsch sind, schlägt der Import fehl. Mit dem Flag
--os
können Sie Informationen zum Gastbetriebssystem überschreiben.NetworkSection
AnnotationSection
ProductSection
EulaSection
StartupSection
DeploymentOptionSection
InstallSection
EnvironmentFilesSection
SharedDiskSection
ScaleOutSection
PlacementGroupSection
PlacementSection
EncryptionSection
- Quellprojekt: das Projekt, in dem die OVA- oder OVF-Datei gespeichert ist.
- Zielprojekt: das Projekt, in dem Sie die VM oder das Maschinen-Image erstellen möchten.
- Suchen Sie in Ihrem Quellprojekt nach dem Cloud Storage-Bucket.
Weisen Sie im Cloud Storage-Bucket den folgenden Dienstkonten
roles/storage.objectViewer
zu:- Cloud Build-Dienstkonto für das Zielprojekt: Dieses Dienstkonto hat das Format
DESTINATION_PROJECT_NUMBER@cloudbuild.gserviceaccount.com
. - Compute Engine-Dienstkonto für das Zielprojekt: Dieses Dienstkonto hat das Format
DESTINATION_PROJECT_NUMBER-compute@developer.gserviceaccount.com
.
Ersetzen Sie
DESTINATION_PROJECT_NUMBER
durch die Projektnummer für das Zielprojekt.Eine Anleitung zum Gewähren des Zugriffs auf einen Cloud Storage-Bucket finden Sie unter Hauptkonto zu einer Richtlinie auf Bucket-Ebene hinzufügen.
- Cloud Build-Dienstkonto für das Zielprojekt: Dieses Dienstkonto hat das Format
Importieren Sie die virtuelle Appliance oder das Maschinen-Image.
- Laden Sie die virtuelle Appliance in Cloud Storage hoch.
Verwenden Sie zum Importieren einer OVA-Datei aus Cloud Storage in Compute Engine den Befehl
gcloud compute instances import
:gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVA_FILE
Ersetzen Sie Folgendes:
VM_NAME
: Name der zu erstellenden InstanzPATH_TO_OVA_FILE
: Pfad zur OVA-Datei in Cloud Storage
Beispiele
Mit diesem Befehl importieren Sie beispielsweise eine OVA-Datei
Ubuntu.ova
und erstellen eine Instanz namensmy-instance
:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova
Wenn die Informationen zum Gastbetriebssystem in der OVF-Deskriptordatei falsch sind oder wenn Sie das erkannte Betriebssystem überschreiben möchten, können Sie das Betriebssystem mit dem Flag
--os
angeben. Eine Liste der unterstützten Werte finden Sie in den--os
-Flag-Optionen für den Befehlgcloud compute instances import
.Führen Sie den folgenden Befehl aus, um beispielsweise eine OVA-Datei
Ubuntu.ova
zu importieren und eine Instanz namensmy-instance
zu erstellen, auf der Ubuntu 16.04 ausgeführt wird:gcloud compute instances import my-instance \ --os=ubuntu-1604 --source-uri=gs://my-bucket/Ubuntu.ova
Laden Sie die virtuelle Appliance in Cloud Storage hoch.
Senden Sie eine
POST
-Anfrage an die Cloud Build API.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Dabei gilt:
PROJECT_ID
: Projekt-ID des Projekts, in das Sie die OVA-Datei importieren möchten.VM_NAME
: Name der zu erstellenden VM-Instanz. Beispiel:my-instance
.SOURCE_URI
: URI für die OVA-Datei, die in Cloud Storage gespeichert ist. Beispiel:gs://my-bucket/my-instance.ova
ZONE
: Zone, in der die VM-Instanz erstellt werden soll. Wenn Sie dieses Feld leer lassen, wird die Standardzone für das Projekt verwendet.
Weitere
args
-Werte, die Sie angeben können, finden Sie im Bereich zu optionalen Flags auf der GitHub-Seite für den Compute Engine-OVF-Import.Beispielantwort
Die folgende Beispielantwort sieht ungefähr so aus wie die zurückgegebene Ausgabe:
{ "name": "operations/build/myproject-12345/operation-1578608233418", "metadata": { "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata", "build": { "id": "3a2055bc-ccbd-4101-9434-d376b88b8940", "status": "QUEUED", "createTime": "2019-12-30T19:06:03.968694865Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_ovf_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/my-instance.ova", "-zone=asia-northeast2", "-client-id=api", "-timeout": "7056s" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345", "tags": [ "gce-ovf-import" ] } } }
Für das Monitoring Ihres Builds können Sie eine dieser Methoden verwenden:
- Ausführen einer projects.builds.get-Anfrage mit der zurückgegebenen
build-id
- Prüfen der Logs, die unter der bereitgestellten
logUrl
gehostet werden
- Laden Sie die virtuelle Appliance in Cloud Storage hoch.
Verwenden Sie zum Importieren einer OVF-Datei aus Cloud Storage in Compute Engine den Befehl
gcloud compute instances import
.Wenn Ihr Verzeichnis nur eine OVF-Datei enthält, können Sie entweder den Pfad zur Deskriptordatei oder den Pfad zu dem Verzeichnis angeben, das die OVF-Datei enthält.
Führen Sie den folgenden Befehl aus, um eine OVF-Datei unter Verwendung des Pfads zur Deskriptordatei zu importieren:
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_FILE
Führen Sie den folgenden Befehl aus, um eine OVF-Datei unter Verwendung des Verzeichnispfads zu importieren:
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_DIRECTORY
Ersetzen Sie Folgendes:
VM_NAME
: Name der zu erstellenden InstanzPATH_TO_OVF_FILE
: Pfad zur OVF-Datei in Cloud StoragePATH_TO_OVF_DIRECTORY
: Pfad zum Verzeichnis mit der OVF-Datei in Cloud Storage
Beispiele
Mit diesem Befehl importieren Sie beispielsweise aus dem Verzeichnis
my-ovf-directory
die OVF-DateiUbuntu.ovf
, die eine Instanz namensmy-instance
erstellt:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Mit diesem Befehl importieren Sie beispielsweise aus dem Verzeichnis
my-ovf-directory
eine OVF-Datei, die eine Instanz namensmy-instance
erstellt:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory
Wenn die Informationen zum Gastbetriebssystem in der OVF-Deskriptordatei falsch sind oder wenn Sie das erkannte Betriebssystem überschreiben möchten, können Sie das Betriebssystem mit dem Flag
--os
angeben. Eine Liste der unterstützten Werte finden Sie in den--os
-Flag-Optionen für den Befehlgcloud compute instances import
. Mit diesem Befehl importieren Sie beispielsweise die OVF-DateiUbuntu.ovf
und erstellen eine Instanz namensmy-instance
, auf der Ubuntu 16.04 ausgeführt wird:gcloud compute instances import my-instance \ --os=ubuntu-1604 \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Fügen Sie die virtuelle Appliance zu Cloud Storage hinzu.
Senden Sie eine
POST
-Anfrage an die Cloud Build API.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Dabei gilt:
PROJECT_ID
: Projekt-ID des Projekts, in das Sie die OVA-Datei importieren möchten.VM_NAME
: Name der zu erstellenden VM-Instanz. Beispiel:my-instance
.SOURCE_URI
: URI für die OVF-Datei, die in Cloud Storage gespeichert ist. Beispiel:gs://my-bucket/my-instance.ovf
OS
: Betriebssystem der OVF-Datei. Beispiel:ubuntu-1604
Das Flag--os
ist standardmäßig optional, aber Sie können das erkannte Betriebssystem mit diesem Flag überschreiben. Eine Liste der unterstützten Werte finden Sie in den--os
-Flag-Optionen für den Befehlgcloud compute instances import
.ZONE
: Zone, in der die VM-Instanz erstellt werden soll. Wenn Sie dieses Feld leer lassen, wird die Standardzone für das Projekt verwendet.
Weitere
args
-Werte, die Sie angeben können, finden Sie im Bereich zu optionalen Flags auf der GitHub-Seite für den Compute Engine-OVF-Import.Beispielantwort
Die folgende Beispielantwort sieht ungefähr so aus wie die zurückgegebene Ausgabe:
{ "name": "operations/build/myproject-12345/operation-1578608233418", "metadata": { "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata", "build": { "id": "3a2055bc-ccbd-4101-9434-d376b88b8940", "status": "QUEUED", "createTime": "2019-12-30T19:06:03.968694865Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_ovf_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/my-instance.ovf", "-os=ubuntu-1404", "-zone=asia-south1", "-client-id=api", "-timeout": "7056s" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345", "tags": [ "gce-ovf-import" ] } } }
Es gibt mehrere Möglichkeiten, den Build zu überwachen:
- Ausführen einer projects.builds.get-Anfrage mit der zurückgegebenen
build-id
- Prüfen der Logs, die unter der bereitgestellten
logUrl
gehostet werden
- VM-Name:
my-instance
- Netzwerk:
custom-vpc-network
- Subnetz:
company-vpc-us-east1-c
- Zone:
us-east1-c
- VM-Name:
my-instance-2
- Netzwerk:
my-shared-vpc
- Subnetz:
my-shared-subnet
- Zone:
us-east1-c
Weisen Sie dem Cloud Build-Dienstkonto die Rolle
compute.networkUser
zu. Weitere Informationen finden Sie unter Erforderliche Rollen für das Cloud Build-Dienstkonto zuweisen.Importieren Sie die VM.
gcloud compute instances import my-instance-2 \ --source-uri gs://my-bucket/Ubuntu.ova \ --project SERVICE_PROJECT_ID \ --network projects/HOST_PROJECT_ID/global/networks/my-shared-vpc \ --subnet projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet --zone us-east1-c
Ersetzen Sie Folgendes:
SERVICE_PROJECT_ID
: ID des Projekts, in das Sie die virtuelle Appliance importieren möchtenHOST_PROJECT_ID
: ID des Projekts, in dem sich die freigegebene VPC befindet
- VM-Name:
my-instance
- Netzwerk:
custom-vpc-network
- Subnetz:
company-vpc-us-east1-c
- Zone:
us-east1-c
- VM-Name:
my-instance-2
- Netzwerk:
my-shared-vpc
- Subnetz:
my-shared-subnet
- Zone:
us-east1-c
Weisen Sie dem Cloud Build-Dienstkonto die Rolle
compute.networkUser
zu. Weitere Informationen finden Sie unter Erforderliche Rollen für das Cloud Build-Dienstkonto zuweisen.Erstellen Sie die folgende
POST
-Anfrage, um die VM zu importieren.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance-2", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-zone=us-east1-c", "-network=projects/HOST_PROJECT_ID/global/networks/my-shared-vpc", "-subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Ersetzen Sie Folgendes:
SERVICE_PROJECT_ID
: ID des Projekts, in das Sie die virtuelle Appliance importieren möchtenHOST_PROJECT_ID
: ID des Projekts, in dem sich die freigegebene VPC befindet
Fügen Sie die virtuelle Appliance zu Cloud Storage hinzu.
Für den Import müssen Paketmanager auf dem Betriebssystem der VM installiert sein. Diese Paketmanager müssen möglicherweise Anfragen an Paket-Repositories außerhalb von Google Cloud stellen. Damit der Zugriff auf diese Updates möglich ist, müssen Sie Cloud NAT konfigurieren. Weitere Informationen finden Sie unter NAT-Konfiguration mit Cloud Router erstellen.
Konfigurieren Sie den privaten Google-Zugriff. Eine ausführliche Anleitung finden Sie unter Privaten Google-Zugriff konfigurieren.
Importieren Sie die VM entweder mit der Google Cloud CLI oder mit REST.
Wenn eine VM von einer virtuellen Appliance erstellt wird, werden temporäre VMs in Ihrem Projekt erstellt. Damit diesen temporären VMs keine externen IP-Adressen zugewiesen sind, müssen Sie ein zusätzliches Flag oder Argument angeben.
Für weitere Informationen klicken Sie auf die folgenden Tabs:
VM_NAME
: Name der zu erstellenden Instanz.SOURCE_URI
: URI für Ihre OVA- oder OVF-Datei in Cloud Storage. Beispiel:gs://my-bucket/Ubuntu.ova
ZONE
: die Zone, in der die virtuelle Appliance erstellt werden soll. Wenn Sie dieses Feld leer lassen, wird die Standardzone für das Projekt verwendet.PROJECT_ID
: Projekt-ID des Projekts, in das Sie das Image importieren möchten.VM_NAME
ist der Name der zu erstellenden VM.SOURCE_FILE
: URI für das Image in Cloud Storage. Beispiel:gs://my-bucket/Ubuntu.ova
.ZONE
ist die Zone, in der das Image erstellt werden soll. Wenn Sie dieses Feld leer lassen, wird die Standardzone für das Projekt verwendet.VM_NAME
: Name der VM, die Sie erstellen möchten.SOURCE_URI
: URI für Ihre OVA- oder OVF-Datei in Cloud Storage. Beispiel:gs://my-bucket/Ubuntu.ova
Laden Sie die virtuelle Appliance in Cloud Storage hoch.
Erstellen Sie in der API eine
POST
-Anfrage an die Cloud Build API.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-uefi-compatible", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Dabei gilt:
PROJECT_ID
: Projekt-ID des Projekts, in das Sie die OVA-Datei importieren möchten.VM_NAME
: Name der zu erstellenden VM-Instanz. Beispiel:my-instance
.SOURCE_URI
: URI für die OVA-Datei, die in Cloud Storage gespeichert ist. Beispiel:gs://my-bucket/my-instance.ova
ZONE
: Zone, in der die VM-Instanz erstellt werden soll. Wenn Sie dieses Feld leer lassen, wird die Standardzone für das Projekt verwendet.
Fügen Sie die virtuelle Appliance zu Cloud Storage hinzu.
Erstellen Sie ein Dienstkonto und weisen Sie die Mindestrollen zu. Weitere Informationen zum Erstellen von Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.
Dem angegebenen Compute Engine-Dienstkonto müssen mindestens die folgenden Rollen zugewiesen sein:
roles/compute.storageAdmin
roles/storage.objectViewer
Diese Mindestrollen werden für das Dienstkonto benötigt, das für das Flag
--compute-service-account
angegeben ist. Weitere Informationen finden Sie unter Erforderliche Rollen für das Compute Engine-Dienstkonto zuweisen.Importieren Sie die virtuelle Appliance mit dem Befehl
gcloud compute instances import
.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPES
Dabei gilt:
VM_NAME
: Name der zu erstellenden Instanz.SOURCE_URI
: URI für Ihre OVA- oder OVF-Datei in Cloud Storage. Beispiel:gs://my-bucket/Ubuntu.ova
ZONE
: die Zone, in der die virtuelle Appliance erstellt werden soll. Wenn Sie dieses Feld leer lassen, wird die Standardzone für das Projekt verwendet.TEMP_SERVICE_ACCOUNT_EMAIL
: Die E-Mail-Adresse des benutzerdefinierten Dienstkontos, das im vorherigen Schritt erstellt wurde. Dieses Dienstkonto wird von den temporären VMs verwendet. Wenn nicht angegeben, verwendet die VM das Compute Engine-Standarddienstkonto.SERVICE_ACCOUNT_EMAIL
: Die E-Mail-Adresse des benutzerdefinierten Dienstkontos, das an die durch den Importvorgang erstellte VM angehängt werden soll. Es gibt keine Berechtigungsbeschränkungen für dieses Dienstkonto. Sie können dieses Dienstkonto nach Bedarf anpassen. Wenn keine Angabe erfolgt, wird das Compute Engine-Standarddienstkonto mit der VM verbunden.SCOPES
: Legen Sie die Zugriffsebene für die Option--service-account
fest. Wenn keine Angabe gemacht wird, werden die Standardbereiche verwendet. Weitere Informationen finden Sie unter dem Flag--scopes
.
Fügen Sie die virtuelle Appliance zu Cloud Storage hinzu.
Erstellen Sie ein Dienstkonto und weisen Sie die Mindestrollen zu. Weitere Informationen zum Erstellen von Dienstkonten finden Sie unter Dienstkonten erstellen und verwalten.
Dem angegebenen Compute Engine-Dienstkonto müssen mindestens die folgenden Rollen zugewiesen sein:
roles/compute.storageAdmin
roles/storage.objectViewer
Diese Mindestrollen sind für das Dienstkonto erforderlich, das für das Argument
-compute-service-account
angegeben wurde. Weitere Informationen finden Sie unter Compute Engine-Dienstkonto die erforderlichen Rollen zuweisen.Erstellen Sie in der API eine
POST
-Anfrage an die Cloud Build API.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_FILE", "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL", "-service-account=SERVICE_ACCOUNT_EMAIL", "-zone=ZONE", "-scopes=SCOPES", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Dabei gilt:
PROJECT_ID
: Projekt-ID des Projekts, in das Sie das Image importieren möchten.VM_NAME
ist der Name der zu erstellenden VM.SOURCE_FILE
: URI für das Image in Cloud Storage. Beispiel:gs://my-bucket/Ubuntu.ova
.ZONE
ist die Zone, in der das Image erstellt werden soll. Wenn Sie dieses Feld leer lassen, wird die Standardzone für das Projekt verwendet.TEMP_SERVICE_ACCOUNT_EMAIL
: Die E-Mail-Adresse des benutzerdefinierten Dienstkontos, das im vorherigen Schritt erstellt wurde. Dieses Dienstkonto wird von den temporären VMs verwendet. Wenn nicht angegeben, verwendet die VM das Compute Engine-Standarddienstkonto.SERVICE_ACCOUNT_EMAIL
: Die E-Mail-Adresse des benutzerdefinierten Dienstkontos, das an die durch den Importvorgang erstellte VM angehängt werden soll. Es gibt keine Berechtigungsbeschränkungen für dieses Dienstkonto. Sie können dieses Dienstkonto nach Bedarf anpassen. Wenn keine Angabe erfolgt, wird das Compute Engine-Standarddienstkonto mit der VM verbunden.SCOPES
: Legen Sie die Zugriffsebene für die Option-service-account
fest. Wenn keine Angabe gemacht wird, werden die Standardbereiche verwendet. Weitere Informationen finden Sie unter dem Flag--scopes
.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Voraussetzungen
In diesem Abschnitt sind die Anforderungen für den Import virtueller Appliances in Compute Engine aufgeführt.
Quell-VM-Anforderungen
Die folgenden Anforderungen müssen von der VM erfüllt werden, die zum Erstellen der OVF-Datei verwendet wird:
Das Betriebssystem für die Quell-VM sollte die folgenden Anforderungen erfüllen:
OVF-Dateianforderungen
Die folgenden Anforderungen müssen von der OVF-Datei erfüllt werden:
Berechtigungen
Achten Sie für einen problemlosen Import darauf, dass Ihrem Konto, dem Cloud Build-Dienstkonto und dem Compute Engine-Dienstkonto die erforderlichen IAM-Rollen zugewiesen sind. Weitere Informationen finden Sie unter Erforderliche IAM-Rollen zuweisen.
Konfigurationen, die vom Import-Tool importiert werden
Der OVF-Standard legt den Prozess für das Packen virtueller Appliances in einer Weise fest, die nicht vom Virtualisierungsanbieter abhängig ist. OVF-Pakete für virtuelle Appliances enthalten eine
.ovf
-Deskriptordatei und eine Sammlung anderer Ressourcen wie virtuelle Laufwerke.Wenn Sie eine virtuelle OVF-Appliance in Compute Engine importieren, werden die folgenden Konfigurationen aus der Deskriptordatei verarbeitet und importiert:
Importierte VMs werden immer mit einem einzelnen Netzwerkadapter mit einer externen IP-Adresse erstellt. Dieser einzelne Netzwerkadapter wird unabhängig von den in der OVF-Datei angegebenen Netzwerkkonfigurationen verwendet. Informationen zum Importieren einer VM ohne externe IP-Adresse finden Sie unter VM ohne externe IP-Adresse importieren.
Beim Importieren einer virtuellen Appliance werden die folgenden Abschnitte der Deskriptordatei ignoriert (nicht importiert):
Beschränkungen
Dieses Feature wird nicht für Projekte unterstützt, die durch VPC Service Controls geschützt werden.
Unterstützte Betriebssysteme
Sie können das Betriebssystem optional im
OperatingSystemSection
-Element Ihrer Deskriptordatei angeben oder das Flag--os
angeben, wenn Sie die virtuelle Appliance mithilfe desgcloud compute instances import
-Befehls importieren.Informationen darüber, welche Betriebssysteme unterstützt werden, finden Sie unter Details zu Betriebssystemen.
Unterstützung für BYOL und BYOS
Standardmäßig werden OVF-Dateien, die Windows Server- und Red Hat Enterprise Linux-Betriebssysteme (RHEL) verwenden, importiert und für die Verwendung der On-Demand-Abrechnung für Premium-Betriebssysteme konfiguriert, für die zusätzliche Kosten anfallen.
Wenn Sie Ihre eigene Softwarelizenz oder ein eigenes Softwareabo verwenden möchten, können Sie Ihre virtuellen Appliances mit deren Lizenzen importieren. Informationen zu den Betriebssystemen, die BYOL oder BYOS unterstützen, finden Sie unter Details zu Betriebssystemen.
Sie können Appliances als BYOL-lizenzierte Appliances importieren. Dazu verwenden Sie den Befehl
gcloud compute instances import
mit dem Flag--byol
. Wenn Sie das Betriebssystem manuell angeben, geben Sie mit dem Flag--os
einen Wert an, der das Suffixbyol
für das Gastbetriebssystem enthält, das Sie importieren möchten. Beispielsweise importiert--os=rhel-8-byol
ein RHEL 8-Image mit einer vorhandenen Lizenz.Projektübergreifend importieren
Wenn Ihre Quell- und Zielprojekte anders sind, benötigen die Dienstkonten im Zielprojekt Zugriff auf den Cloud Storage-Bucket in Ihrem Quellprojekt.
Führen Sie die folgenden Schritte aus, um projektübergreifend zu importieren:
Virtuelle Appliances importieren
Sie können Ihre virtuelle Appliance entweder mit der Google Cloud CLI oder mit REST importieren.
OVA-Datei importieren
gcloud
REST
OVF-Datei importieren
gcloud
REST
Mit benutzerdefinierten Einstellungen importieren
Benutzerdefinierte CPU und Arbeitsspeicher
gcloud
Damit Sie die in der OVF-Datei angegebene CPU- oder Arbeitsspeicherkonfiguration überschreiben können, führen Sie die Schritte des Google Cloud CLI aus, um eine OVA-Datei zu importieren oder eine OVF-Datei zu importieren. Geben Sie außerdem die Flags
--custom-cpu
und--custom-memory
an.Beispiel
Führen Sie beispielsweise den folgenden Befehl aus, um eine Instanz namens
my-instance
zu importieren, die 2 CPUs und 2.048 MB Arbeitsspeicher hat:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova \ --custom-cpu=2 --custom-memory=2048MB
REST
Damit Sie die in der OVF-Datei angegebene CPU- oder Arbeitsspeicherkonfiguration überschreiben können, führen Sie die Schritte der Cloud Build API aus, um eine OVA-Datei zu importieren oder eine OVF-Datei zu importieren. Geben Sie außerdem das Argument
-machine-type
an. Dieser-machine-type
steht für einen vordefinierten oder benutzerdefinierten Maschinentyp, der verwendet werden soll.Beispiel
Wenn Sie beispielsweise eine Instanz namens
my-instance
mit zwei CPUs und 2.048 MB Arbeitsspeicher importieren möchten, verwenden Sie die folgende Anfrage. Ersetzen SiePROJECT_ID
durch Ihre Projekt-ID.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-machine-type=custom-2-2048", "-zone=asia-south1", "-client-id=api", "-timeout=7056s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Benutzerdefinierte Netzwerke
Das benutzerdefinierte Netzwerk muss in demselben Projekt definiert werden, in das Sie das Image importieren.
gcloud
Damit Sie ein benutzerdefiniertes Netzwerk verwenden können, führen Sie die Schritte der Google Cloud CLI aus, um eine OVA-Datei zu importieren oder eine OVF-Datei zu importieren und geben Sie ein Flag
--network
an. Wenn das Netzwerk mit einem benutzerdefinierten Subnetzmodus konfiguriert ist, müssen Sie auch die Flags--subnet
und--zone
angeben.Beispiel 1: Mit einem benutzerdefinierten Netzwerk
Gehen Sie beispielsweise von folgenden Attributen aus:
Mit diesem Befehl importieren Sie eine Instanz mit den vorherigen Attributen. Ersetzen Sie
SERVICE_PROJECT_ID
durch die ID des Projekts, in das Sie die virtuelle Appliance importieren möchten.gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova \ --project SERVICE_PROJECT_ID \ --network custom-vpc-network \ --subnet company-vpc-us-east1-c \ --zone us-east1-c
Beispiel 2: Mit einem benutzerdefinierten Netzwerk (freigegebene VPC)
Gehen Sie beispielsweise von folgenden Attributen aus:
So importieren Sie eine VM mit den vorherigen Attributen:
REST
Damit Sie ein benutzerdefiniertes Netzwerk verwenden können, führen Sie die Schritte der Cloud Build API aus, um eine OVA-Datei zu importieren oder eine OVF-Datei zu importieren. Geben Sie außerdem das Argument
-network
an. Wenn das Netzwerk mit einem benutzerdefinierten Subnetzmodus konfiguriert ist, müssen Sie auch die Argumente-subnet
und-zone
angeben.Beispiel: Mit einem benutzerdefinierten Netzwerk
Gehen Sie beispielsweise von folgenden Attributen aus:
Erstellen Sie die folgende
POST
-Anfrage, um eine Instanz mit diesen Attributen zu importieren. Ersetzen SieSERVICE_PROJECT_ID
durch die ID des Projekts, in das Sie die virtuelle Appliance importieren möchten.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-zone=us-east1-c", "-network=custom-vpc-network", "-subnet=company-vpc-us-east1-c", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Beispiel 2: Mit einem benutzerdefinierten Netzwerk (freigegebene VPC)
Gehen Sie beispielsweise von folgenden Attributen aus:
So importieren Sie eine VM mit den vorherigen Attributen:
VM mithilfe von Netzwerken importieren, die externe IP-Adressen nicht zulassen
Führen Sie die folgenden Schritte aus, um eine VM mit Netzwerken zu importieren, die keine externen IP-Adressen zulassen:
gcloud
Importieren Sie eine virtuelle Appliance von Cloud Storage in Compute Engine mit dem Befehl
gcloud compute instances import
mit dem Flag--no-address
.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --no-address
Dabei gilt:
REST
Sie können eine VM ohne externe IP-Adresse importieren. Verwenden Sie dazu die Cloud Build API mit einer Überschreibung für die externe IP-Adresse.
Wenn Sie die in der OVF-Datei angegebenen externen IP-Einstellungen überschreiben möchten, führen Sie die Schritte der Cloud Build API aus, um eine OVA-Datei zu importieren oder eine OVF-Datei zu importieren und geben Sie das Argument
-no-external-ip
an.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_FILE", "-no-external-ip", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Dabei gilt:
OVA-Datei mit UEFI-Bootloader importieren
gcloud
Mit dem Befehl
gcloud compute instances import
können Sie einen Import erzwingen, der den UEFI-Boot verwendet.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --guest-os-features=UEFI_COMPATIBLE
Dabei gilt:
REST
Sie können eine OVA-Datei mit einem UEFI-Bootloader importieren, wenn Sie die Cloud Build API verwenden und das Argument
-uefi-compatible
angeben.Virtuelle Appliance mithilfe von benutzerdefinierten Dienstkonten importieren
Während eines Imports der virtuellen Appliance werden temporäre VM-Instanzen in Ihrem Projekt erstellt. Das Tool zum Importieren von Images auf diesen temporären VMs muss authentifiziert werden.
Ein Dienstkonto ist eine Identität, die mit einer VM verbunden ist. Auf Zugriffstoken für Dienstkonten kann über den Instanzmetadatenserver zugegriffen und zur Authentifizierung des Import-Tools auf der VM verwendet werden.
Beim Import wird standardmäßig das Compute Engine-Standarddienstkonto verwendet. Wenn jedoch das Compute Engine-Standarddienstkonto in Ihrem Projekt deaktiviert ist oder Sie ein benutzerdefiniertes Compute Engine-Dienstkonto verwenden möchten, müssen Sie ein Dienstkonto erstellen und für den Importvorgang angeben.
gcloud
REST
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-11-21 (UTC).
-