SAP-Bereitstellungen in Google Cloud mit Deployment Manager automatisieren

Sie können die Bereitstellung der Google Cloud-Infrastruktur mit Cloud Deployment Manager automatisieren, einem Dienst, der das Erstellen und Verwalten von Google Cloud-Ressourcen automatisiert.

Für ausgewählte SAP-Lösungen und unterstützende Datenbanken wie SAP HANA bietet Google Cloud vordefinierte Cloud Deployment Manager-Konfigurationsvorlagen, 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 Cloud Deployment Manager-Konfigurationen für die folgenden SAP-Lösungen:

  • SAP Netweaver
  • SAP HANA
  • SAP ASE
  • SAP MaxDB
  • IBM Db2
    • Unter Linux. Sie können die Vorlage aus folgender Quelle herunterladen:
      https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/template.yaml
      Die Schritte zur Verwendung der Db2-Vorlage für Linux sind nicht dokumentiert, ähneln jedoch den Schritten für die ASE- und MaxDB-Vorlagen für Linux.
    • Unter Linux in einem HA-Cluster unter Linux
    • Unter Windows. Sie können die Vorlage aus folgender Quelle herunterladen:
      https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2-win/template.yaml
      Die Schritte zur Verwendung der Db2-Vorlage für Windows sind nicht dokumentiert, ähneln jedoch den Schritten für die ASE- und MaxDB-Vorlagen für Windows.

Inhalt der Vorlagenbereitstellung

Alle von Google Cloud für SAP-Bereitstellungen zur Verfügung gestellten Deployment Manager-Vorlagen konfigurieren die folgenden Elemente oder stellen sie bereit:

  • Mindestens eine Compute Engine-VM
  • Ein von Ihnen angegebenes Betriebssystem-Image
  • Mindestens ein nichtflüchtiger Speicher
  • 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 öffentliche IP-Adresse für jede VM-Instanz
  • Die neueste Version des Google Cloud-Agents für SAP

Für SAP HANA stellen die Deployment Manager-Vorlagen auch Folgendes bereit:

  • Speicher-Volumes für /hana/shared 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
  • Für SAP HANA-Systeme mit vertikaler Skalierung ein Linux-Hochverfügbarkeitscluster

Für SAP NetWeaver stellen die Deployment Manager-Vorlagen außerdem Folgendes bereit:

  • Speicher-Volumes für /sapmnt und /usr/sap und ein Swap-Volume

Deployment Manager-Dateien für jede SAP-Bereitstellung

Jede vordefinierte Deployment Manager-Konfiguration für SAP enthält die folgenden Dateien:

  • Eine YAML-Konfigurationsdatei, template.yaml
  • Eine Python-Vorlagendatei, deployment-type.py, z. B. sap_hana.py, sap_hana_scaleout.py, oder sap_nw.py
  • Eine Python-Schemadatei, deployment-type.py.schema, z. B. sap_hana.py.schema, sap_hana_scaleout.py.schema, oder sap_nw.py.schema
  • Mindestens ein Shell-Skript, startup.sh oder startup.ps1

Sie geben die Attribute Ihrer Google Cloud-Ressourcen in der Konfigurationsdatei template.yaml an.

template.yaml-Konfigurationsdatei fertigstellen

Die template.yaml-Konfigurationsdateien, die für SAP-Bereitstellungen zur Verfügung gestellt werden, entsprechen den Standards, die von Deployment Manager definiert werden.

Die für SAP bereitgestellten Konfigurationsdateien enthalten die Definition der primären Ressource, gefolgt von einem Kommentarabschnitt mit erweiterten Attributen, die seltener verwendet werden. Das folgende Beispiel ist ein Auszug aus der Datei template.yaml für SAP HANA:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  #
  properties:
    instanceName: [VM_NAME]
    instanceType: [MACHINE_TYPE]
    zone: [ZONE]
    subnetwork: [SUBNETWORK]
    linuxImage: family/[IMAGE_FAMILY]
    linuxImageProject: [IMAGE_PROJECT]
    sap_hana_deployment_bucket: [MEDIA_BUCKET]
    sap_hana_sid: [SID]
    sap_hana_instance_number: [INSTANCE_NUMBER]
    sap_hana_sidadm_password: [PASSWORD]
    sap_hana_system_password: [PASSWORD]
    sap_hana_scaleout_nodes: [NUMBER_OF_WORKER_NODES]
    #
    # --- Advanced Options ---
    # The following advanced options are not usually needed. To use an advanced option, remove
    # the comment indicator, #, before the parameter name and specify an appropriate value.
    #
    # networkTag: [TAG]
    #    Adds network tags to your instance. This is useful if you do routing or define
    #    firewall rules by tags. By default, no tags are added to your VM. Multiple tags
    #    can be assigned by separating them with commas
    #
     ...

Wenn Sie die erweiterten Attribute verwenden möchten, entfernen Sie das Kommentarzeichen # und geben Sie einen Wert für das Attribut an.

Weitere Informationen zu Konfigurationsdateien finden Sie unter Grundlagen von Deployment Manager.

Versionsverwaltung für Vorlagen

Sie können festlegen, welche Version der Deployment Manager-Vorlage Ihre SAP-Bereitstellungen verwenden sollen. Dazu geben Sie in der YAML-Konfigurationsdatei im Attribut type einen Versionsstempel an.

Wenn Sie eine neue template.yaml-Konfigurationsdatei herunterladen, gibt das Attribut type standardmäßig latest als Version an. Dies bedeutet, dass Ihre Bereitstellungen immer die neueste verfügbare Version der Deployment Manager-Vorlagen verwendet.

In den Kommentaren nach dem Attribut type finden Sie eine alternative type-Attributspezifikation, die den Zeitstempel der beim Herunterladen der Datei template.yaml neuesten verfügbaren Version enthält. Beispiel:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  #
  properties:
  ...

Wenn alle Ihre Bereitstellungen die gleiche Vorlagenversion verwenden sollen, ersetzen Sie die Spezifikation für das Attribut type, die latest enthält, durch die type-Attributspezifikation mit dem Zeitstempel. Beispiel:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  properties:
  ...

Wenn ein Zeitstempel angegeben ist, verwenden alle Bereitstellungen die Version der Deployment Manager-Vorlage, die dem angegebenen Zeitstempel entspricht.

Wenn Sie wissen möchten, welche Vorlagenversion Deployment Manager für eine SAP-Bereitstellung verwendet hat, klicken Sie in der Google Cloud Console auf der Seite "Deployments" auf den Namen der Bereitstellung und anschließend auf Erweiterte Konfigurationsansicht unter Bereitstellungsattribute. Der Zeitstempel der Version wird im Abschnitt metadata nach startup-script angezeigt, wie im folgenden Beispiel dargestellt:

metadata:
  items:
  - key: startup-script
    value: curl -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/startup.sh
      | bash -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates

Mehrere Ressourcen mit einer einzigen Konfigurationsdatei bereitstellen

Sie können mehrere Ressourcen mit einer einzigen Konfigurationsdatei bereitstellen. Dazu fügen Sie der Datei weitere Ressourcendefinitionen hinzu.

Kopieren Sie bei SAP-Bereitstellungen die Abschnitte -name, type und properties: der vordefinierten Ressource und fügen Sie sie unten ein, um die neue Ressourcendefinition zu erstellen.

Geben Sie in jeder Ressourcendefinition eindeutige Werte für die folgenden Elemente an:

  • name
  • instanceName

Bereitstellungen ausführen

Sie starten eine Bereitstellung mit dem folgenden Befehl:

gcloud deployment-manager deployments create [DEPLOYMENT-NAME] --config [TEMPLATE-NAME].yaml

Wenn Sie eine Vorschau der Bereitstellungsergebnisse sehen möchten, bevor Sie Google Cloud-Ressourcen bereitstellen, hängen Sie das Flag --preview an den Befehl an.

Wenn Sie eine Bereitstellung starten, prüft Deployment Manager die Spezifikationen in der Datei template.yaml anhand der Definitionen in der Datei deployment-type.py.schema. Wenn die Validierung erfolgreich ist, erstellt Deployment Manager die Google Cloud-Ressourcen anhand der Ressourcendefinitionen in den Dateien template.yaml und deployment-type.py.

Wenn die Deployment Manager-Verarbeitung abgeschlossen ist, zeigt Deployment Manager in Cloud Shell für jede erstellte Ressource COMPLETED an und übergibt die Kontrolle an das Shell-Skript.

Das Shell-Skript 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.

Deployment Manager erstellt auch einen Eintrag in der Google Cloud Console auf der Seite Bereitstellungen, wo Sie weitere Details zu Ihrer Bereitstellung finden.

Erweiterte Anpassung der Vorlagen

Nachdem Sie VM-Definitionen oder andere geringfügige Änderungen in der YAML-Konfigurationsdatei hinzugefügt haben, können Sie als fortgeschrittener Nutzer die von Google Cloud bereitgestellten Deployment Manager-Vorlagen auf andere Weise anpassen. Dies birgt jedoch Risiken.

Wenn Sie die Vorlagen ändern, übernehmen Sie die Verantwortung für die geänderte Vorlage. Dazu gehört auch, dass Sie darauf achten müssen, dass sie aktuell ist und von Deployment Manager verarbeitet werden kann. Sie müssen auch prüfen, ob die Google Cloud-Infrastruktur und die SAP-Systeme, die von den geänderten Vorlagen bereitgestellt werden, die Anforderungen an die SAP- und Google Cloud-Unterstützung erfüllen, einschließlich der SAP-Anforderungen.

Änderungen an den Deployment Manager-Vorlagen erschweren außerdem die Google Cloud-Unterstützung Ihrer Bereitstellung. Die SAP-Spezialisten der Cloud-Kundenbetreuung sind mit den vordefinierten Vorlagen und mit den damit bereitgestellten Konfigurationen vertraut, aber nicht mit Anpassungen, die Sie eventuell vorgenommen haben. Wenn Sie Support von Google Cloud für eine Bereitstellung oder Konfiguration mit einer benutzerdefinierten Vorlage benötigen, müssen Sie Ihre Anpassungen erläutern und damit rechnen, dass die Lösung der Supportanfrage länger dauert.

Wenn Sie die von Google Cloud für SAP bereitgestellten Deployment Manager-Vorlagen ändern, sollten Sie ein entsprechend geschultes technisches Team haben, das Sie zu den Änderungen berät, die Auswirkungen der Änderungen auf die Systemleistung analysiert und bei der Fehlerbehebung von Problemen hilft, die später ggf. auftreten. Wenn Sie kein solches Team haben, können Ihnen Spezialisten von Implementierungspartnern oder Google Cloud Professional Services helfen.

Wenn Sie Änderungen vornehmen möchten, müssen Sie Folgendes verstehen:

  • Die Anforderungen an die SAP-Unterstützung, die in der SAP-Dokumentation und den SAP-Hinweisen definiert sind, die für Ihre SAP-Produkte gelten.
  • Deployment Manager und wie Sie mit Bereitstellungen, Konfigurationen und Vorlagen arbeiten. Weitere Informationen finden Sie in der Deployment Manager-Dokumentation.
  • Python- oder Shell-Skriptsprachen, je nachdem, welche Art von Änderung Sie vornehmen.

Arten erweiterter Anpassung

Folgende Änderungen gelten als erweiterte Anpassung:

  • Benutzerdefinierte Verarbeitung oder Aktionen in einem Skript nach der Bereitstellung. Dies ist die empfohlene Methode, um erweiterte Anpassungen in Ihre Bereitstellungen einzubinden.
  • Verwendung anderer Betriebssystemtypen als der unterstützten Versionen von Red Hat Enterprise Linux für SAP oder SUSE Linux Enterprise Server für SAP.
  • Modifications to the backend scripts that are provided as part of the template:
    • Shell-Skripts (Bash oder PowerShell)
    • Dynamische Konfigurations- und Schemadateien von Python
  • Für Hochverfügbarkeitsbereitstellungen:
    • Anpassung der Pacemaker-Konfigurationseinstellungen. Wenn Sie eine bestimmte Funktion nicht finden können, hinterlassen Sie bitte Feedback auf der Dokumentationsseite.
    • Änderungen an der Standardvorlage für die HANA-Bereitstellung mit horizontaler Skalierung und Standby-Knoten.

Unabhängig von der Art der Änderung sollten Sie darauf achten, dass Ihre Änderungen zu einem SAP-System führen, das gemäß der SAP-Produktdokumentation und den für Ihr System definierten SAP-Hinweisen unterstützt wird.

Anpassbare Vorlagendateien

Google Cloud empfiehlt, die Anpassungen der .yaml-Konfigurationsdatei zu beschränken. Sie können jedoch auch die anderen Deployment Manager-Dateien ändern, solange das resultierende SAP-System die Anforderungen der SAP-Unterstützung erfüllt.

Welche Dateien Sie ändern müssen, hängt von der Art der Änderungen ab, die Sie vornehmen müssen.

Wenn Sie zusätzliche Validierungsprüfungen für Attributwerte hinzufügen möchten, die für Ihre Umgebung spezifisch sind, können Sie die Attributdefinitionen in die Datei deployment-type.py.schema einfügen.

In der Datei deployment-type.py können Sie folgende Änderungen vornehmen:

  • Fügen Sie den Werten in der Konfigurationsdatei weitere Berechnungen hinzu, z. B. IP-Bereiche oder Laufwerksgrößen. Beachten Sie, dass das Ändern von Laufwerksgrößen, insbesondere für SAP HANA, dazu führen kann, dass die Konfiguration nicht den Anforderungen der SAP-Unterstützung entspricht.
  • Fügen Sie zusätzliche VM-Instanzmetadaten hinzu.
  • Passen Sie Laufwerksnamen an.

Vorlagendateien herunterladen

Zum Herunterladen der Dateien können Sie die folgenden Befehle verwenden. Ersetzen Sie den roten kursiven Text jedoch erst durch die entsprechenden Werte für die Vorlage:

wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py.schema
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/startup.sh
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/template.yaml

Wenn Sie beispielsweise die Vorlagendateien für eine SAP HANA-Bereitstellung mit vertikaler Skalierung herunterladen möchten, verwenden Sie die folgenden Befehle:

wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py.schema
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/startup.sh
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml

Geänderte Vorlagendateien verwenden

Wenn Sie mit der Bearbeitung der Vorlagendateien fertig sind, laden Sie sie in einen Cloud Storage-Bucket oder Webserver hoch und aktualisieren Sie die URLs in template.yaml und anderen Dateien mit dem Dateispeicherort.

Skripts nach der Bereitstellung

Sie können ein Skript 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 Bereitstellung 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 Deployment Manager in Cloud Shell oder eine lokale Google Cloud CLI-Sitzung schreibt.

Support für die Deployment Manager-Vorlagen für SAP

Wenn Sie Hilfe bei der Behebung eines Problems mit den Deployment Manager-Vorlagen für SAP benötigen, erfassen Sie die erforderlichen Diagnoseinformationen und wenden Sie sich an Cloud Customer Care. Eine Liste der erforderlichen Diagnoseinformationen finden Sie unter Diagnoseinformationen zu Deployment Manager-Vorlagen für SAP.