Windows Server-Instanzen erstellen und verwalten

Compute Engine stellt öffentliche Images für Windows Server bereit, mit denen Sie Instanzen erstellen können. Eine Anleitung zum Erstellen einer Windows Server-Instanz mit vorinstalliertem SQL Server finden Sie unter SQL Server-Instanzen erstellen.

Weitere Informationen zu Windows Server-Instanzen und Windows-Anwendungen, die Sie in Compute Engine ausführen können, finden Sie unter Windows auf Compute Engine.

Hinweise

Eine Windows Server-Instanz erstellen

Wenn Sie eine Instanz mit Windows Server erstellen möchten, geben Sie die Image-Familie für die jeweils benötigte Windows-Version an. Compute Engine bietet mehrere Versionen von Windows Server, von denen die meisten als Shielded VM-Images verfügbar sind. Shielded VM-Images bieten Sicherheitsfeatures wie UEFI-konforme Firmware, Secure Boot und vTPM-geschütztes Measured Boot. Eine Liste der verfügbaren Image-Familien finden Sie unter Öffentliche Images.

Windows Server-Instanz erstellen, die eine externe IP-Adresse für die Aktivierung verwendet

In diesem Abschnitt wird beschrieben, wie Sie eine Windows Server-Instanz mit einer externen IP-Adresse erstellen. Ihr VPC-Netzwerk muss so konfiguriert sein, dass der Zugriff auf kms.windows.googlecloud.com möglich ist.

Windows Server-Instanz erstellen

Console

So erstellen Sie eine Standard-Windows-Instanz:

  1. Rufen Sie in der Cloud Console die Seite VM-Instanzen auf.

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf Instanz erstellen.
  3. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um mit der Konfiguration des Bootlaufwerks zu beginnen.
  4. Wählen Sie auf dem Tab Public images den Wert a Windows image aus.

  5. Klicken Sie auf Auswählen.
  6. Klicken Sie auf Erstellen, um die Instanz anzulegen.

So erstellen Sie eine Shielded VM-Windows-Instanz:

  1. Rufen Sie die Seite "VM-Instanzen" auf.

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf Instanz erstellen.
  3. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um mit der Konfiguration des Bootlaufwerks zu beginnen.
  4. Wählen Sie auf dem Tab Öffentliche Images die Version des Windows Server-Betriebssystems aus.
    Wählen Sie Images mit Shielded VM-Features zeigen aus, damit nur Shielded VM-Images angezeigt werden.
  5. Klicken Sie auf Speichern, um die Konfiguration des Bootlaufwerks zu speichern.
  6. Ändern Sie optional die Shielded VM-Einstellungen der Instanz:

    1. Klicken Sie im Abschnitt Verwaltung, Sicherheit, Laufwerke, Netzwerke auf den Tab Sicherheit.
    2. Wenn Sie Secure Boot deaktivieren möchten, entfernen Sie das Häkchen bei Secure Boot aktivieren. Mit Secure Boot können Sie Ihre VM-Instanzen vor Malware und Rootkits auf Boot- und Kernelebene schützen. Weitere Informationen finden Sie unter Secure Boot.
    3. Wenn Sie das Virtual Trusted Platform Module (vTPM) deaktivieren möchten, entfernen Sie das Häkchen bei vTPM aktivieren. Durch das vTPM wird Measured Boot aktiviert, das die Integrität der VM vor und während des Bootvorgangs überprüft. Weitere Informationen finden Sie unter Virtual Trusted Platform Module (vTPM).

    4. Wenn Sie das Integritätsmonitoring deaktivieren möchten, entfernen Sie das Häkchen bei Integrity Monitoring aktivieren. Mit dem Integritätsmonitoring können Sie die Integrität beim Booten Ihrer Shielded VM-Instanzen mithilfe von Cloud Monitoring überwachen. Weitere Informationen finden Sie unter Integritätsmonitoring.

  7. Klicken Sie auf Erstellen, um die Instanz zu erstellen.

gcloud

Rufen Sie mit dem Befehl compute images list eine Liste der verfügbaren Windows Server-Images auf.

gcloud compute images list --project windows-cloud --no-standard-images

Wenn Sie herausfinden möchten, ob ein Image Shielded VM-Features unterstützt, führen Sie den folgenden Befehl aus und suchen Sie in der Ausgabe nach UEFI_COMPATIBLE:

gcloud compute images describe [IMAGE_NAME] --project windows-cloud

Dabei ist [IMAGE_NAME] der Name des Images, das auf die Unterstützung von Shielded VM-Features geprüft werden soll.

Verwenden Sie den Befehl compute instances create, um eine neue Instanz zu erstellen und die Image-Familie für eines der öffentlichen Images von Windows Server anzugeben.

gcloud compute instances create [INSTANCE_NAME] \
    --image-project windows-cloud \
    --image-family [IMAGE_FAMILY] \
    --machine-type [MACHINE_TYPE] \
    --boot-disk-size [BOOT_DISK_SIZE] \
    --boot-disk-type [BOOT_DISK_TYPE]

Dabei gilt:

  • [INSTANCE_NAME] ist der Name der neuen Instanz.
  • [IMAGE_FAMILY] ist eine der öffentlichen Image-Familien für Windows Server-Images.
  • [MACHINE_TYPE] ist einer der verfügbaren Maschinentypen.
  • [BOOT_DISK_SIZE] ist die Größe des Bootlaufwerks in GB. Größere nichtflüchtige Speicher haben einen höheren Durchsatz.
  • [BOOT_DISK_TYPE] ist der Typ des Bootlaufwerks für Ihre Instanz. Beispiel: pd-ssd.

Wenn Sie ein Image ausgewählt haben, das Shielded VM unterstützt, können Sie optional die Shielded VM-Einstellungen der Instanz mit einem der folgenden Flags ändern:

  • --no-shielded-secure-boot: Secure Boot deaktivieren Mit Secure Boot können Sie Ihre VM-Instanzen vor Malware und Rootkits auf Boot- und Kernelebene schützen. Weitere Informationen finden Sie unter Secure Boot.
  • --no-shielded-vtpm: Virtual Trusted Platform Module (vTPM) deaktivieren Durch das vTPM wird Measured Boot aktiviert, der die Integrität der VM vor und während des Startens überprüft. Weitere Informationen finden Sie unter Virtual Trusted Platform Module (vTPM).

  • --no-shielded-integrity-monitoring: Integritätsmonitoring deaktivieren Mit dem Integritätsmonitoring können Sie die Integrität beim Booten Ihrer Shielded VM-Instanzen mithilfe von Cloud Monitoring überwachen. Weitere Informationen finden Sie unter Integritätsmonitoring.

Im folgenden Beispiel wird eine Windows 2012-Shielded VM-Instanz mit deaktiviertem Secure Boot erstellt:

gcloud compute instances create my-instance \
--image-family windows-2012-r2 --image-project windows-cloud \
--no-shielded-secure-boot

API

Für das Erstellen einer Instanz über die API verwenden Sie in der Anfrage zur Instanzerstellung das Attribut initializeParams und geben ein Windows-Image an. Der Text Ihrer Anfrage könnte zum Beispiel so aussehen:

instance = {
  "name": "[INSTANCE_NAME]",
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
  "disks": [{
      "boot": "true",
      "type": "PERSISTENT",
      "initializeParams": {
         "diskName": "[DISK_NAME]",
         "sourceImage": "https://compute.googleapis.com/compute/v1/projects/windows-cloud/global/images/family/[IMAGE_FAMILY]",
         "diskSizeGb": "[BOOT_DISK_SIZE]",
         "diskType": "[BOOT_DISK_TYPE]",
       }
    }],
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
     }],
    "network": "global/networks/default"
  }],
  "serviceAccounts": [{
       "email": DEFAULT_SERVICE_EMAIL,
       "scopes": DEFAULT_SCOPES
  }]
}

Dabei gilt:

  • [INSTANCE_NAME] ist der Name der neuen Instanz.
  • [IMAGE_FAMILY] ist eine der öffentlichen Image-Familien für Windows Server- oder SQL Server-Images.
  • [ZONE] ist die Zone für diese Instanz.
  • [MACHINE_TYPE] ist einer der verfügbaren Maschinentypen.
  • [BOOT_DISK_SIZE] ist die Größe des Bootlaufwerks in GB. Größere nichtflüchtige Speicher haben einen höheren Durchsatz.
  • [BOOT_DISK_TYPE] ist der Typ des Bootlaufwerks für Ihre Instanz. Beispiel: pd-ssd.

Wenn Sie ein Image ausgewählt haben, das Shielded VM unterstützt, können Sie optional die Shielded VM-Einstellungen der Instanz mit den folgenden booleschen Anfragetextelementen ändern:

  • enableSecureBoot: Secure Boot aktivieren oder deaktivieren Mit Secure Boot können Sie Ihre VM-Instanzen vor Malware und Rootkits auf Boot- und Kernel-Ebene schützen. Weitere Informationen finden Sie unter Secure Boot.
  • enableVtpm: Virtual Trusted Platform Module (vTPM) aktivieren oder deaktivieren Durch das vTPM wird Measured Boot aktiviert, das die Integrität der VM vor und während des Startens überprüft. Weitere Informationen finden Sie unter Virtual Trusted Platform Module (vTPM).

  • enableIntegrityMonitoring: Integritätsmonitoring aktivieren oder deaktivieren Mit dem Integritätsmonitoring können Sie die Integrität beim Booten der Laufzeit Ihrer Shielded VM-Instanzen mithilfe von Cloud Monitoring-Berichten überwachen und prüfen. Weitere Informationen finden Sie unter Integritätsmonitoring.

Weitere Informationen zum Erstellen einer Instanz finden Sie in der Dokumentation zu instances.insert().

Wenn Sie die Windows Server- oder SQL Server-Instanz erstellt haben, legen Sie das vorläufige Passwort für die Instanz fest, damit Sie sich über RDP mit der Instanz verbinden können.

Windows Server-Instanz erstellen, die über eine interne IP-Adresse aktiviert wird

Bevor Sie eine Windows Server-Instanz erstellen können, die nur eine interne IP-Adresse hat, müssen Sie die Routen und Firewallregeln in Ihrem VPC-Netzwerk überprüfen oder konfigurieren, um den Zugriff auf kms.windows.googlecloud.com zu ermöglichen. Darüber hinaus ist die Aktivierung von privatem Google-Zugriff für Subnetze in Ihrem VPC-Netzwerk erforderlich, die Windows-Instanzen mit ausschließlich internen IP-Adressen enthalten.

Wenn Sie eine neue Instanz mithilfe der gcloud-Befehlszeile erstellen, können Sie mit dem Flag --no-address festlegen, dass ihr keine externe IP-Adresse zugewiesen wird:

gcloud compute instances create [INSTANCE_NAME] --network [NETWORK_NAME] \
   --subnet [SUBNET_NAME] \
   --no-address \
   --zone [ZONE] \
   --image-project windows-cloud \
   --image-family [IMAGE_FAMILY] \
   --machine-type [MACHINE_TYPE] \
   --boot-disk-size [BOOT_DISK_SIZE] \
   --boot-disk-type [BOOT_DISK_TYPE]

Ersetzen Sie die folgenden Platzhalter durch gültige Werte:

  • [INSTANCE_NAME] ist der Name der neuen Instanz.
  • [SUBNET_NAME] ist der Name des Subnetzes im VPC-Netzwerk, das von der Instanz verwendet wird. Das Subnetz muss sich in derselben Region befinden wie die Zone, die Sie für die Instanz ausgewählt haben.
  • [IMAGE_FAMILY] ist eine der öffentlichen Image-Familien für Windows Server-Images.
  • [MACHINE_TYPE] ist einer der verfügbaren Maschinentypen.
  • [BOOT_DISK_SIZE] ist die Größe des Bootlaufwerks in GB. Größere nichtflüchtige Speicher haben einen höheren Durchsatz.
  • [BOOT_DISK_TYPE] ist der Typ des Bootlaufwerks für Ihre Instanz. Beispiel: pd-ssd.

Da diese Instanz keine externe IP-Adresse hat, können Sie keine direkte Verbindung über das Internet zu ihr herstellen. Sie können über Cloud Interconnect oder Cloud VPN eine Verbindung von einem anderen Netzwerk zu Ihrem VPC-Netzwerk herstellen. Alternativ können Sie zuerst über RDP eine Verbindung zu einer Bastion-Instanz und dann zu einer Instanz herstellen, die nur eine interne IP-Adresse hat.

Zugriff auf kms.windows.googlecloud.com konfigurieren

Für die Aktivierung von Windows und die Verlängerung der Lizenz muss Ihr VPC-Netzwerk die folgenden Anforderungen an Routing und Firewallregeln erfüllen.

Anforderungen für das Routing

Ihre Windows-Instanzen müssen über eine Route, deren nächster Hop das Standard-Internetgateway ist, kms.windows.googlecloud.com (35.190.247.13) erreichen können. Sie können Windows-Instanzen nicht mit einem instanzbasierten NAT-Gateway oder Cloud-NAT aktivieren, da kms.windows.googlecloud.com Aktivierungsanfragen von IP-Adressen zurückweist, die nicht als Instanzen von Compute Engine bestätigt wurden.

Sie können die Standardroute in Ihrem VPC-Netzwerk verwenden, um den Traffic direkt an kms.windows.googlecloud.com weiterzuleiten. Wenn Sie diese Route entfernen oder dies für die Zukunft planen, erstellen Sie eine benutzerdefinierte statische Route mit dem Ziel 35.190.247.13 und dem nächsten Hop als Standard-Internetgateway:

gcloud compute routes create [ROUTE_NAME] \
    --destination-range=35.190.247.13/32 \
    --network=[NETWORK] \
    --next-hop-gateway=default-internet-gateway

Ersetzen Sie [ROUTE_NAME] durch einen Namen für diese Route und [NETWORK] durch den Namen des VPC-Netzwerks.

Instanzen mit externen IP-Adressen können kms.windows.googlecloud.com wie oben beschrieben entweder über die Standardroute oder eine benutzerdefinierte statische Route erreichen. Wenn Sie Windows-Instanzen ohne externe IP-Adressen haben, müssen Sie auch privaten Google-Zugriff aktivieren, damit Instanzen mit ausschließlich internen IP-Adressen Traffic an die externe IP-Adresse für kms.windows.googlecloud.com senden können. Die entsprechende IP-Adresse 35.190.247.13 ist in der Liste der IP-Adressen für Google APIs und Google-Dienste enthalten.

Anforderungen an Firewallregeln

Die implizierte Firewallregel zum Zulassen ausgehenden Traffics erlaubt es Instanzen, Anfragen zu stellen und zugehörige Antworten zu erhalten. Sofern Sie keine benutzerdefinierten Firewallregeln erstellt haben, die ausgehenden Traffic verweigern, können Ihre Windows-Instanzen mit kms.windows.googlecloud.com kommunizieren.

Wenn Sie Firewallregeln anpassen, bietet es sich an, eine Regel mit hoher Priorität für ausgehenden Traffic zu erstellen, die die Kommunikation mit 35.190.247.13 ausdrücklich zulässt. Auf diese Weise können Sie die Windows-Aktivierung nicht versehentlich deaktivieren, wenn Sie Ihre Firewallregeln ändern.

In den folgenden gcloud-Beispielen wird die empfohlene Regel für ausgehenden Traffic mit der höchsten Priorität erstellt:

gcloud compute firewall-rules create [RULE_NAME] \
    --direction=EGRESS \
    --network=[NETWORK] \
    --action=ALLOW \
    --rules=tcp:1688 \
    --destination-ranges=35.190.247.13/32 \
    --priority=0

Ersetzen Sie [RULE_NAME] durch einen Namen für diese Firewallregel und [NETWORK] durch den Namen des VPC-Netzwerks.

Prüfen, ob eine Instanz gestartet wurde

Windows-Instanzen benötigen aufgrund des Sysprep-Prozesses eine längere Startzeit. Die Cloud Console zeigt unter Umständen an, dass die Instanz ausgeführt wird, obwohl der Systemvorbereitungsvorgang noch nicht abgeschlossen ist. Um zu prüfen, ob Ihre Instanz erfolgreich gestartet wurde und bereit ist, überprüfen Sie mit dem folgenden Befehl die Ausgabe am seriellen Port:

gcloud compute instances get-serial-port-output [INSTANCE_NAME]

Dabei ist [INSTANCE_NAME] der Name der Instanz, die Sie prüfen möchten.

...[snip]...
Running schtasks with arguments /run /tn GCEStartup
-->  SUCCESS: Attempted to run the scheduled task "GCEStartup".
-------------------------------------------------------------
Instance setup finished. [INSTANCE_NAME] is ready to use.
-------------------------------------------------------------

Von Google bereitgestellte Komponentenupdates deaktivieren

Wenn Sie Windows-Instanzen mit der Image-Version v20170509 und höher oder der Windows-Agent-Version 4.1.0 und höher haben, werden von Google bereitgestellte Komponenten wie der Agent, Metadaten und Systemvorbereitungsskripts über eine geplante Aufgabe automatisch aktualisiert. Die geplante Aufgabe wird mit dem Paket google-compute-engine-auto-updater eingerichtet.

Wenn Sie Updates manuell oder mithilfe eines anderen Systems verwalten möchten, können Sie diese automatischen Komponentenupdates deaktivieren, indem Sie das Paket google-compute-engine-auto-updater entfernen:

  1. Öffnen Sie in der Windows Server-Instanz ein PowerShell-Terminal als Administrator.
  2. Führen Sie den Befehl googet remove aus, um das Paket zu entfernen:

    PS C:\\> googet remove google-compute-engine-auto-updater
    

Optional können Sie das Paket neu installieren, um automatische Komponentenupdates zu ermöglichen:

  1. Öffnen Sie in der Windows Server-Instanz ein PowerShell-Terminal als Administrator.
  2. Führen Sie den Befehl googet install aus, um das Paket zu installieren:

    PS C:\\> googet install google-compute-engine-auto-updater
    

Alternativ können Sie den Wert disable-agent-updates in den benutzerdefinierten Projekt- oder Instanzmetadaten auf true setzen, um die Updates zu deaktivieren. Der Metadatenwert deaktiviert Updates, ohne das Paket oder die Aufgabe zu entfernen.

Windows-Instanzfunktionen aktivieren und deaktivieren

Wenn Sie Windows-Instanzen mit der Image-Version v20170509 oder höher oder mit der Agent-Version 4.1.0 oder höher verwenden, können Sie die Instanzkonfiguration in einer Konfigurationsdatei oder in den benutzerdefinierten Projekt- oder Instanzmetadaten festlegen. Die Konfigurationsdatei hat das INI-Format und befindet sich in folgendem Verzeichnis:

C:\Program Files\Google\Compute Engine\instance_configs.cfg

Das System überschreibt Konfigurationseinstellungen in der folgenden Prioritätsreihenfolge – von der höchsten zur niedrigsten Priorität:

  1. Konfigurationsparameter, die Sie in der Konfigurationsdatei festgelegt haben
  2. Konfigurationsparameter, die in benutzerdefinierten Metadaten auf Instanzebene festgelegt wurden
  3. Konfigurationsparameter, die in benutzerdefinierten Metadaten auf Projektebene festgelegt wurden

Wenn Sie beispielsweise das Feature accountManager in einer Konfigurationsdatei aktivieren können, werden Parameter, die Sie in benutzerdefinierten Metadaten festgelegt haben, um dieses Feature zu deaktivieren, ignoriert.

Ein Vorteil, wenn diese Parameter in der Konfigurationsdatei festgelegt werden, ist, dass diese Einstellungen beim Erstellen eines benutzerdefinierten Images für eine Windows Server-Instanz erhalten bleiben. Benutzerdefinierte Metadaten auf Instanzebene bleiben nicht über die Laufzeit der Instanz hinweg bestehen.

Sie können gemäß den folgenden Beispielen verschiedene Windows-Instanz-Features deaktivieren:

Deaktivieren Sie den Kontomanager, wodurch auch das Zurücksetzen von Passwörtern mit dem gcloud-Befehlszeilentool oder der Console deaktiviert wird:

  • Konfigurationsdatei:

    [accountManager]
    disable=true
    
  • Stellen Sie disable-account-manager bei benutzerdefinierten Metadaten auf true ein.

Deaktivieren Sie den Adressmanager:

  • Eintrag in der Konfigurationsdatei:

    [addressManager]
    disable=true
    
  • Stellen Sie disable-address-manager bei benutzerdefinierten Metadaten auf true ein.

Windows Server Failover-Clustering

Aktivieren Sie den Windows Server Failover-Clustering-Agent:

  • Eintrag in der Konfigurationsdatei:

    [wsfc]
    enable=true
    
  • Stellen Sie enable-wsfc bei benutzerdefinierten Metadaten auf true ein.

Mehrere interne Load-Balancer verwenden

Geben Sie die IP-Adresse der internen Load-Balancing-Instanz für das Failover-Clustering an. Dies ist eine erweiterte Konfiguration, die Sie für einen dedizierten Failover-Cluster nicht festlegen müssen.

Normalerweise verwenden Sie eine interne Load-Balancing-Instanz, damit der Netzwerkverkehr immer zu jeweils einer VM-Instanz geleitet wird. Wenn Sie eine zweite interne Load-Balancing-Instanz hinzufügen, die die Failover-Clustering-VM-Instanzen als Bestandteil einer gesicherten Website mit Load-Balancing nutzt, haben Sie zwei IP-Adressen für das interne Load-Balancing. Wenn das Failover-Clustering 10.0.0.10 und der Load-Balancer der Website 10.0.0.11 nutzt, müssen Sie die IP-Adresse des Load-Balancers angeben, den Sie für das Failover-Clustering verwenden. Dadurch wird klar, welche Adresse für den Cluster verwendet wird.

  • Eintrag in der Konfigurationsdatei:

    [wsfc]
    addresses=10.0.0.10
    
  • Stellen Sie wsfc-addrs bei benutzerdefinierten Metadaten auf 10.0.0.10 ein.

Den Port des Clustering-Agents ändern

Legen Sie den Port des Failover-Clustering-Agents fest. Der Standardport ist 59998. Sie müssen nur dann einen Port angeben, wenn Sie einen anderen Port verwenden möchten:

  • Eintrag in der Konfigurationsdatei:

    [wsfc]
    port=12345
    
  • Stellen Sie bei benutzerdefinierten Metadaten wsfc-agent-port auf die Portnummer ein.

Hinweise zur Image-Version

Ältere Images nutzen keine Konfigurationsdatei und bieten nur einen Teil der Funktionen. Bei den Image-Versionen v20160112 bis v20170509 oder den Windows-Agent-Versionen 3.2.1.0 bis 4.0.0 müssen Sie die folgenden benutzerdefinierten Metadatenwerte verwenden:

  • Stellen Sie disable-account-manager in den Instanzmetadaten auf true, um den Kontomanager zu deaktivieren.
  • Stellen Sie disable-address-manager in den Instanzmetadaten auf true, um den Adressmanager zu deaktivieren.

Nächste Schritte