SAP-Bereitstellungen in Google Cloud mit Terraform automatisieren

Sie können die Bereitstellung der Google Cloud -Infrastruktur mit Terraform automatisieren, einem Open-Source-Tool, mit dem Sie die Erstellung und Verwaltung von Google Cloud -Ressourcen automatisieren können. Informationen zu Terraform finden Sie unter Terraform mit Google Cloud.

Für ausgewählte SAP-Lösungen und unterstützende Datenbanken wie SAP HANA bietetGoogle Cloud vordefinierte Terraform-Konfigurationsdateien, mit denen Sie eine Google Cloud-Infrastruktur bereitstellen können, die den Anforderungen und Best Practices der SAP-Unterstützung entspricht.

Unterstützte SAP-Lösungen

Google Cloud bietet Terraform-Konfigurationsdateien für die folgenden SAP-Lösungen:

Inhalt der Bereitstellung der Konfigurationsdateien

Alle Terraform-Konfigurationsdateien, dieGoogle Cloud für SAP-Bereitstellungen bereitstellt, konfigurieren die folgenden Elemente oder stellen sie bereit:

  • Mindestens eine Compute Engine-VM
  • Ein von Ihnen angegebenes Betriebssystem-Image
  • Mindestens ein Persistent Disk- oder Hyperdisk-Volume
  • Optional: Ein Dienstkonto für die Identitäts- und Zugriffsverwaltung (Identity and Access Management – IAM), das Sie für die Nutzung durch die VMs angeben
  • Die Google Cloud APIs, die für die SAP-Bereitstellung erforderlich sind
  • Optional: Netzwerk-Tags für jede VM-Instanz
  • Optional: Eine externe IP-Adresse für jede VM-Instanz
  • Die neueste Version des Agenten für SAP vonGoogle Cloud

Für SAP HANA stellen die Terraform-Konfigurationsdateien auch Folgendes bereit:

  • Speicher-Volumes für /hana/data, /hana/log, /hana/shared, /usr/sap und /hanabackup
  • Optional: Das SAP HANA-System selbst
  • Für SAP HANA-Systeme mit horizontaler Skalierung und automatischem Host-Failover einen Master-Host, bis zu 15 Worker-Hosts und bis zu 3 Standby-Hosts
  • Linux-Hochverfügbarkeitscluster
  • Optional, für SAP HANA-Systeme mit vertikaler Skalierung, statische IP-Adressen für die primäre und sekundäre Instanz
  • Optional, für SAP HANA-Systeme mit horizontaler Skalierung, statische IP-Adressen für die Master-, Worker- und Standby-Knoten
  • Optional: Knoten für einzelne Mandanten

Für SAP NetWeaver stellen die Terraform-Konfigurationsdateien auch Folgendes bereit:

  • Speicher-Volumes für /sapmnt und /usr/sap und ein Swap-Volume
  • Optional ein Linux-Hochverfügbarkeitscluster unter SLES

Bei Hochverfügbarkeitsclustern stellen die Terraform-Konfigurationsdateien auch zusätzliche Funktionen und Funktionen wie internen Load-Balancer, Instanzgruppen und Weiterleitungsregeln bereit. Weitere Informationen finden Sie im Bereitstellungsleitfaden für das HA-Szenario.

Terraform-Konfigurationen für jede SAP-Bereitstellung

Jede vordefinierte Terraform-Konfiguration für SAP enthält eine deklarative Konfigurationsdatei DEPLOYMENT_TYPE.tf.

Informationen zu den Namen von Konfigurationsdateien oder zum Herunterladen finden Sie in der Bereitstellungsanleitung für Ihr Szenario.

Terraform-Konfigurationsdatei fertigstellen

Die für SAP-Bereitstellungen zur Verfügung gestellten Terraform-Konfigurationsdateien entsprechen den von Terraform definierten Standards.

Die für SAP bereitgestellten Konfigurationsdateien enthalten die Definition des primären Moduls, gefolgt von Kommentaren, die Argumente deklarieren. Das folgende Beispiel ist ein Auszug aus der Datei sap_hana.tf zum Bereitstellen eines SAP HANA-Systems zur horizontalen Skalierung ohne Standby-Knoten:

#...
module "sap_hana" {
  source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
  #
  # By default, this source file uses the latest release of the terraform module
  # for SAP on Google Cloud. To fix your deployments to a specific release
  # of the module, comment out the source property above and uncomment the source property below.
  #
  # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana/sap_hana_module.zip"
  # ...
  project_id = "example-project-123456"
  zone = "us-central1-f"
  machine_type = "n2-highmem-32"
  subnetwork = "example-subnet-us-central1"
  linux_image = "sles-15-sp2-sap"
  linux_image_project = "suse-sap-cloud"
  # ...
  instance_name = "hana-scaleout"
  # ...
  sap_hana_deployment_bucket = "mybucketname"
  sap_hana_sid = "AB2"
  sap_hana_instance_number = 12
  sap_hana_sidadm_password = "TempPa55word"
  sap_hana_system_password = "TempPa55word"
  sap_hana_scaleout_nodes = 3
  sap_hana_sidadm_uid = 11
  vm_static_ip = "10.0.0.1"
  worker_static_ips = ["10.0.0.2", "10.0.0.3", "10.0.0.4"]
  enable_fast_restart = true
  # ...
}

Wenn Sie die optionalen Argumente verwenden möchten, entfernen Sie das Kommentarzeichen # und geben Sie einen Wert für das Argument an. Die meisten optionalen Argumente haben einen Standardwert. Wenn Sie kein optionales Argument angeben, verwendet die Terraform-Konfiguration gegebenenfalls den Standardwert dieses Arguments.

Weitere Informationen zu Konfigurationsdateien finden Sie in der Dokumentation zur Terraform-Sprache.

Modulversionsverwaltung

Die Terraform-Konfigurationsdateien DEPLOYMENT_TYPE.tf, die Sie von Google Cloud für SAP-Bereitstellungen herunterladen, enthalten zwei Instanzen des Arguments source: eine aktive Instanz und eine als Kommentar enthaltende Instanz. Sie können steuern, welche Version des Moduls Ihre Konfiguration verwendet. Entfernen Sie dazu das führende Kommentarzeichen # aus dem Argument source, das Sie benötigen, und fügen Sie es demjenigen hinzu, das Sie nicht benötigen.

Wenn Sie eine neue Terraform-Konfigurationsdatei vonGoogle Cloud für SAP-Bereitstellungen herunterladen, wird standardmäßig im aktiven source-Argument latest als Modulversion angegeben. Wenn Terraform also die Dateien in Ihrem Arbeitsverzeichnis aktualisiert, wenn Sie den Befehl terraform init eingeben, verwendet Ihre Konfiguration die neueste verfügbare Version des Terraform-Moduls, das von Google Cloud für SAP-Bereitstellungen bereitgestellt wird.

Die zweite Instanz des Arguments source, die standardmäßig durch ein führendes #-Zeichen deaktiviert ist, enthält den Zeitstempel, der die Version des von Google Cloudbereitgestellten Moduls identifiziert. Im folgenden Beispiel ist 1.3.674800406 der Zeitstempel, der die Version des Terraform-Moduls angibt.

#...
module "sap_hana" {
  source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
  #...
  # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/1.3.674800406/terraform/sap_hana/sap_hana_module.zip"
  #...
  # arguments...
  #...}

Wenn alle Ihre Bereitstellungen dieselbe Modulversion verwenden sollen, entfernen Sie in der Datei DEPLOYMENT_TYPE.tf das führende #-Zeichen aus dem Argument source, das den Zeitstempel der Version enthält, und fügen es dem Argument source hinzu, das latest als Version angibt, wie im folgenden Beispiel gezeigt:

#...
module "sap_hana" {
  # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
  #...
  source = "https://storage.googleapis.com/cloudsapdeploy/terraform/1.3.674800406/terraform/sap_hana/sap_hana_module.zip"
  #...
  # arguments...
  #...}

Wenn ein Zeitstempel angegeben ist, verwenden alle Bereitstellungen die Version des Terraform-Moduls, die dem angegebenen Zeitstempel entspricht.

Mehrere Systeme mit einer einzigen Konfigurationsdatei bereitstellen

Sie können mehrere Systeme mit einer einzigen Terraform-Konfigurationsdatei bereitstellen. Fügen Sie dazu der Konfigurationsdatei module-Blöcke für jedes zusätzliche System hinzu, das Sie bereitstellen müssen.

Kopieren Sie bei SAP-Bereitstellungen die module-Blockdefinition vonGoogle Cloud und fügen Sie sie in der richtigen Reihenfolge in die Konfigurationsdatei ein.

Geben Sie in jedem Modulblock eindeutige Werte für instanzspezifische Argumente wie module oder instance_name an.

Konfigurationen anwenden

Sie wenden eine Terraform-Konfiguration mit dem Befehl terraform apply an.

Wenn Sie eine Vorschau der Konfigurationsergebnisse sehen möchten, bevor Sie Ressourcen bereitstellen, erstellen Sie den Terraform-Ausführungsplan mit dem Befehl terraform plan. Google Cloud

Ausführliche Anwendungsverfahren finden Sie im Bereitstellungsleitfaden für Ihr Szenario.

Wenn Terraform Ihre Konfiguration angewendet hat, zeigt Terraform in Cloud Shell für jede erstellte Ressource COMPLETED an und übergibt die Kontrolle an das Shell-Script. Das Shell-Script wird auf den bereitgestellten VMs als StartScript aufgerufen.

Das Shell-Script konfiguriert die bereitgestellten Ressourcen weiter und protokolliert ihren Fortschritt in Cloud Logging. Eine SAP-Bereitstellung ist erst abgeschlossen, wenn die Shell-Skripts ihre Verarbeitung abgeschlossen haben.

Skripts nach der Bereitstellung

Sie können ein Script nach der Bereitstellung verwenden, um zusätzliche Aktionen auszuführen, wie z. B. die Installation Ihrer SAP NetWeaver-Anwendung auszulösen, Agenten zu beobachten und so weiter.

Skripts nach der Bereitstellung werden zur Anpassung der Konfiguration empfohlen, da sie erst nach der Konfiguration der Google Cloud-Infrastruktur gemäß den Anforderungen der SAP-Unterstützung die Kontrolle übernehmen.

Zur Anzeige von Statusmeldungen für Skripts nach der Bereitstellung müssen Sie die Skripts so codieren, dass die Nachrichten in die Logs geschrieben werden. Weitere Informationen finden Sie in der Cloud Logging-Dokumentation.

Der Status von Skripts nach der Bereitstellung ist nicht in den Nachrichten enthalten, die Terraform in Cloud Shell oder eine lokale Google Cloud CLI-Sitzung schreibt.

Unterstützung für die Terraform-Konfigurationen erhalten

Wenn Sie Hilfe bei der Behebung eines Problems mit den Terraform-Konfigurationen benötigen, die Google Cloud für SAP bereitstellt, erfassen Sie die erforderlichen Diagnoseinformationen und wenden Sie sich an den Cloud Customer Care.

Weitere Informationen zum Support von Terraform-Problemen finden Sie unter Support für Terraform-Probleme erhalten.