Bereitstellung des SAP bastion server - SAP media storage repository
Dieses Thema beschreibt die automatische Bereitstellung von SAP bastion und die Einrichtung von Speicher auf Red Hat Enterprise Linux 8.4. Es wird gezeigt, wie eine IBM Cloud Virtual Private Cloud (VPC) mit einem Bastion-Host mit sicherem SSH-Remote-Zugang bereitgestellt wird. In SAP Terraform- und Ansible-Bereitstellungen wird der Bastionshost verwendet, um externen Verwaltungszugriff auf die anderen Server und Anwendungen zu erteilen. Auf den Bastionsserver wird über die variable IP-Adresse zugegriffen. Der Bastionsserver enthält eine anpassbare Sicherheitsgruppe und ein anpassbares Teilnetz, um den Zugriff auf dieselben Regionszonen auf dessem dedizierten SAP/DBs und den IPs und Ports der VSI zu ermöglichen. Die variable IP-Adresse ermöglicht dem Bastionshostzugriff auf das Internet, sodass die SAP- und DB-Kits heruntergeladen werden können. Außerdem wird automatisch eine dedizierte Client-to-Site-VPN-Lösung eingerichtet, die künftigen SAP-Servern über einen OpenVPN-Software-Client direkten Zugriff auf die private IP-Adresse bietet.
Bevor Sie entscheiden, welche automatisierte Lösung SAP Sie in IBM Cloud VPC bereitstellen möchten, führen Sie die automatisierte Bereitstellung von Bastion Server aus. Sie müssen die Größe des dedizierten Speichers angeben, der zum Herunterladen und Speichern der SAP-Kits benötigt wird. Die SAP Kits werden verwendet, um die gewünschte SAP Lösung aus dem IBM Cloud VPC automatisierten SAP Lösungspool bereitzustellen. Der Bastion-Server in IBM Cloud wird in erster Linie für die Bereitstellung der Lösung SAP verwendet. Er kann z.B. als Jump Host eingesetzt werden, um alle SAP Lösungen innerhalb seiner jeweiligen IBM Cloud VPC-Region zu warten und zu verwalten.
Jeder Kunde erhält einen SAP S-Benutzer, der seine Vertragsdetails mit SAP widerspiegelt, einschließlich:
- SAP-Support
- SAP Notes
- Systemwartung
- SAP- und Datenbanklizenzen generieren und verwalten
- Migrationsschlüssel
Es liegt in der Verantwortung des Kunden, die notwendigen SAP Kits von SAP launchpad support herunterzuladen und vorzubereiten und sie auf dem dafür vorgesehenen und anpassbaren Speicher zu speichern. Die SAP-Kits werden während der automatisierten Bereitstellung verwendet, wenn Ansible aufgerufen wird.
Lösung implementiert
Der Bastion-Server wird für die Remote-Software-Installation unter Verwendung von Terraform remote-exec und Ansible playbooks verwendet, die von Schematics ausgeführt werden.
Die Terraform-Module implementieren nur für die Bastionshostkonfiguration eine 'angemessene' Gruppe bewährter Verfahren. Ihre eigene Organisation verfügt möglicherweise über weitere Anforderungen, die Sie vor der Bereitstellung anwenden müssen.
Darunter sind:
- Terraform-Skripte für die Bereitstellung einer VPC, eines Subnetzes, einer Sicherheitsgruppe mit Standard- und benutzerdefinierten Regeln, einer VSI mit einem Volume, einer Secrets Manager Service-Instanz und einer VPN-Client-to-Site-Lösung.
- Bash-Scripts zum Installieren der Voraussetzungen für SAP BASTION&STORAGE VSI und andere SAP-Lösungen.
VPC-Konfiguration
Die Sicherheitsregeln lauten wie folgt:
- Gesamten Datenverkehr in der Sicherheitsgruppe zulassen
- Gesamten ausgehenden Datenverkehr zulassen
- Eingehenden DNS-Datenverkehr zulassen (UDP-Port 53)
- Eingehenden SSH-Datenverkehr zulassen (TCP-Port 22)
- Option zum Zulassen von eingehendem TCP-Datenverkehr mit einem angepassten Port oder einem Portbereich.
VSI-Konfiguration
Die VSI ist mit Red Hat Enterprise Linux 8.4 (amd64) konfiguriert und hat mindestens zwei SSH-Schlüssel, die für den Zugriff durch den Rootbenutzer und einen Speicherdatenträger konfiguriert sind.
VPN-Konfiguration
Für die VPN-Lösung wird eine Secrets Manager-Instanz bereitgestellt. Es werden zwei Geheimnisse bereitgestellt, das Server-Zertifikat und das Client-Zertifikat; beide werden bei der VPN-Erstellung und auch bei der Erstellung der Datei ovpn
für die Verbindung verwendet. Sie können diese Geheimnisse auf der Seite Geheimnisse-Manager > Geheimnisse einsehen und die Option Geheimnis anzeigen wählen.
Der VPN-Server erhält eine eigene Sicherheitsgruppe. Die Sicherheitsgruppe wird den UDP-Port 443 für alle Quell-IP-Adressen öffnen. Diese kann später an die Bedürfnisse des Kunden angepasst werden.
Es wird eine Regel für die Sicherheitsgruppe der Bastion hinzugefügt, um den gesamten Datenverkehr von der VPN-Sicherheitsgruppe zuzulassen. Wenn später andere Sicherheitsgruppen zur VPC hinzugefügt werden und Sie den Zugriff auf ihre angeschlossenen Ressourcen über die VPN-Verbindung erlauben möchten, sollte dieselbe Regel auch für diese Gruppen konfiguriert werden.
Das Automatisierungsskript erzeugt auf dem Bastion-Server eine ovpn-Profildatei für Ihren OpenVPN-Client. Sie müssen von der Bastion herunterladen und in Ihren OpenVPN Client importieren.
Softwarekonfiguration
- Terraform - ein Open-Source-Infrastruktur-als-Code-Software-Tool, das von HashiCorp entwickelt wurde.
- Ansible – Ein Open-Source-Softwarebereitstellungs und Konfigurationsmanagementtool.
- Mit der IBM Cloud-Befehlszeilenschnittstelle (CLI) stehen Befehle für die Verwaltung von Ressourcen in IBM Cloud zur Verfügung.
Bastionseingabevariablen
Parameter | Beschreibung |
---|---|
ibmcloud_api_key | IBM Cloud API-Schlüssel (sensibler* Wert). |
private_ssh_key | Der Inhalt des privaten Schlüssels id_rsa von Ihrem lokalen System (sensibler* Wert). |
REGION | Die Cloud-Region zur Bereitstellung der Ressourcen. Weitere Informationen zu Regionen und Zonen für VPC finden Sie unter Standorte. Überprüfen Sie die unterstützten Standorte auf IBM Cloud Schematics, die unter Standorte und Endpunkte aufgeführt sind. Beispielwert: eu-de. |
Zone | Die Cloudzone, in der die Lösung implementiert werden soll. Beispielwert: eu-de-2. |
VPC_EXISTS | Geben Sie an, ob die ausgewählte VPC vorhanden ist (geben Sie 'yes' oder 'no' ein). Wenn Sie 'no' auswählen, wird die VPC erstellt. |
SUBNET_EXISTS | Geben Sie an, ob das ausgewählte SUBNET/SECURITYGROUP vorhanden ist (verwenden Sie 'yes' oder 'no'). Wenn Sie 'no' auswählen, wird ein SUBNET/SECURITYGROUP mit OPEN PORTS in der angegebenen VPC erstellt. |
ADD_OPEN_PORTS_IN_NEW_SUBNET | Neue(r) Port(s) nur erstellen, wenn ein NEUES SUBNET erstellt wird, mit 'ja' oder 'nein'. |
OPEN_PORT_MINIMUM (Erforderlich, Ganzzahl) | Der TCP-Portbereich, der den Mindestwert enthält. Gültige Werte: 1 bis 65535. |
OPEN_PORT_MAXIMUM (Erforderlich, Ganzzahl) | Der TCP-Portbereich, der den Maximalwert enthält. Gültige Werte: 1 bis 65535. |
VPC | Der Name der VPC. Zeigen Sie die Liste der verfügbaren VPCs auf der Seite IBM Cloud Console Virtual Private Clouds an. |
Teilnetz | Der Name des Teilnetzes. Zeigen Sie die Liste der verfügbaren Subnetze auf der Seite IBM Cloud Console Subnets an. |
SECURITYGROUP | Der Name der Sicherheitsgruppe. Zeigen Sie die Liste der verfügbaren Sicherheitsgruppen auf der Seite „Sicherheitsgruppen der IBM Cloud Konsole für VPC an. |
HOSTNAME | Der Hostname für die VSI. Der Hostname darf bis zu 13 Zeichen lang sein. |
Profil | Das für die VSI verwendete Profil. Weitere Informationen zu Profilen finden Sie unter Instanzprofile. Standardwert: "bx2-2x8". |
IMAGE | Das für die VSI verwendete Betriebssystemimage. Weitere Informationen zu verfügbaren Images finden Sie unter Images virtueller Server. Standardwert: ibm-redhat-8-4-minimal-amd64-1. |
SSH_KEYS | Liste der SSH-Schlüssel-IDs, die für SSH als root auf dem VSI zugelassen sind. Diese kann eine oder mehrere IDs enthalten. Zeigen Sie die Liste der verfügbaren SSH-Schlüssel auf der Seite IBM Cloud Console SSH keys for VPC an. Beispieleingabe (verwenden Sie Ihre eigenen SSH-IDs von IBM Cloud ) [" r010-57bfc315-f9e5-46bf-bf61-d87a24a9ce7a ", " r010-3fcd9fe7-d4a7-41ce-8bb3-d96e936b2c7e "] |
VOL1 [Nummer] | Die Größe der Platte in GB, die der VSI BASTION als Speicher für die SAP-Bereitstellungskits zugeordnet werden soll. Mountpunkt für den neuen Datenträger: "/storage". Standardwert: 100 GB. |
VPN_CREATE | Gibt an, ob eine VPN-Lösung zu Ihrer Bastion-Einrichtung hinzugefügt werden soll. Wenn Sie dies bejahen, wird automatisch eine VPN-Lösung für Sie eingerichtet, die Ihnen den Zugang zum privaten IP-Adressraum Ihrer VPC ermöglicht. |
VPN_PREFIX | Das Präfix, das für die VPN-bezogenen Elemente zu verwenden ist. Das unter dieser Variable eingestellte Präfix wird der erstellten Instanz Secrets Manager hinzugefügt und auch als Präfix für die Sicherheitsgruppe des VPNs sowie als Name für den erstellten VPN-Server verwendet. |
VPN_NETWORK_PORT_PROTOCOL | Das Protokoll, das für die VPN-Lösung verwendet werden soll. (muss entweder "tcp" oder "udp" sein) |
VPN_NETWORK_PORT_NUMBER | Die Portnummer, die für die VPN-Lösung verwendet werden soll. (muss zwischen 1 und 65535 liegen) |
SM_PLAN | Der Preisplan, der für die Instanz Secrets Manager verwendet werden soll, wird als Plan-ID angegeben. Verwenden Sie 869c191a-3c2a-4faf-98be-18d48f95ba1f für die Testversion oder 7713c3a8-3be8-4a9a-81bb-ee822fcaac3d für die Standardversion. |
VPN_CLIENT_IP_POOL | Optionale Variable zur Angabe der CIDR für den IP-Pool-Bereich des VPN-Clients. Dies ist der IP-Raum, der von Systemen verwendet wird, die sich mit dem VPN verbinden. Sie sollten dies nur ändern müssen, wenn Sie einen Konflikt mit Ihrem lokalen Netzwerk haben. |
DESTROY_BASTION_SERVER_VSI | Bei der ersten Bereitstellung sollte sie auf false gesetzt bleiben. Falls nach der ersten Bereitstellung der Wunsch besteht, den Deployment Server (Bastion Server) VSI zu zerstören, aber den Rest der Cloud-Ressourcen (VPC, Subnetz, Sicherheitsgruppe und VPN-Lösung) beizubehalten, muss der Wert in Schematics auf true gesetzt werden, und dann müssen die Änderungen durch Drücken der Schaltfläche "Plan anwenden" übernommen werden. |
Sensibel* – Der Variablenwert wird nach dem Speichern nicht in den Details Ihres Arbeitsbereichs angezeigt. Stellen Sie sicher, dass Sie Sensibel auf der Seite "Einstellungen" für alle Felder mit der Markierung "Sensibel" auswählen.
Die VOL1-Variable [Nummer] stellt die definierte Kundengröße des Speichers dar, der zum Speichern heruntergeladener SAP-Kits erforderlich ist, bevor Sie die automatisierte Bereitstellung von SAP ausführen. Die Speichergröße kann angepasst werden, wenn Sie die SAP-Bastions-VPC und -VSI bereitstellen. Der standardmäßig zugewiesene Speicherplatz beträgt 100 GB.
Vorbereitende Schritte
-
Um dieses Verfahren durchzuführen, benötigen Sie ein allgemeines Verständnis von IBM Cloud VPC und VSI. Um das Beispiel in IBM Cloud Schematics auszuführen, benötigen Sie ein Konto IBM Cloud. Die bereitgestellten Ressourcen sind gebührenpflichtig.
-
Erstellen Sie einen IBM Cloud API-Schlüsseloder rufen Sie ihn ab. Der API-Schlüssel wird verwendet, um sich bei der Plattform IBM Cloud zu authentifizieren und um Ihre Berechtigungen für die Dienste von IBM Cloud zu bestimmen.
-
Stellen Sie sicher, dass Sie über die erforderlichen IBM Cloud-IAM- IBM Cloud zum Erstellen und Arbeiten mit der VPC-Infrastruktur verfügen und dass Ihnen die richtigen Berechtigungen zum Erstellen des Arbeitsbereichs und Bereitstellen von Ressourcen zugewiesen sind.
-
Generieren Sie einen ssh-Schlüssel. Der SSH-Schlüssel ist für den Zugriff auf die bereitgestellten virtuellen VPC-Serverinstanzen über den Bastionshost erforderlich. Nachdem Sie Ihren SSH-Schlüssel erstellt haben, laden Sie diesen SSH-Schlüssel unbedingt in Ihr IBM Cloud-Konto in der VPC-Region und Ressourcengruppe hoch, in der Sie den Bastion-Server bereitstellen möchten.
-
Stellen Sie sicher, dass Sie auf die URL zugreifen können, die für diese Lösung, Automationsscript für SAP-Lösungen mit einer BASTION & STORAGE-Setup-Bereitstellung über Terraform und IBM Schematics, verwendet wird.
-
Erstellen Sie eine IAM-Dienst-zu-Dienst-Autorisierung für Ihren VPN-Server und IBM Cloud Secrets Manager. Dadurch kann der Client-to-Site-VPN-Dienst auf die unter der Instanz Secrets Manager erstellten Geheimnisse zugreifen und diese verwenden.
Vorgehensweise
- Wählen Sie im Menü IBM Cloud Schematics.
- Klicken Sie auf Arbeitsbereich erstellen.
- Gehen Sie auf der Seite Vorlage angeben wie folgt vor:
- Geben Sie die URL des Bastionskonfigurationsordners ein.
- Wählen Sie Terraform-Version aus.
- Klicken Sie auf 'Weiter'.
- Gehen Sie auf der Detailseite des Arbeitsbereichs wie folgt vor:
- Geben Sie einen Namen für den Arbeitsbereich ein.
- Wählen Sie eine Ressourcengruppe aus.
- Wählen Sie eine Position für Ihren Arbeitsbereich aus. Die Arbeitsbereichsposition muss nicht mit der Ressourcenposition übereinstimmen.
- Wählen Sie Weiter.
- Wählen Sie Erstellen aus, um Ihren Arbeitsbereich zu erstellen.
- Überprüfen Sie auf der Arbeitsbereichsseite Einstellungen im Abschnitt "Eingabevariablen" die Standardeingabevariablen und geben Sie Werte an, die Ihrer Lösung entsprechen:
- Ihr API-Schlüssel
- Ihr privater SSH-Schlüssel von Ihrem lokalen System.
- Die ID des SSH-Schlüssels, den Sie erstellt und hochgeladen haben auf IBM Cloud
- Die Region für Ihre Ressourcen
- Die Zone für Ihre Ressourcen
- Gibt an, ob eine vorhandene VPC verwendet oder eine erstellt werden soll
- Gibt an, ob ein vorhandenes Teilnetz verwendet werden soll
- Gibt an, ob nur dann ein neuer Port erstellt werden soll, wenn ein neues Teilnetz erstellt wird
- TCP-Port-Bereich, Minimum und Maximum
- VPC-Name
- Name des Teilnetzes
- Name der Sicherheitsgruppe
- Hostname
- Profil
- Image
- Empfohlene Mindestplattengrößen.
- Klicken Sie auf 'Änderungen speichern'.
- Klicken Sie auf der Seite "Einstellungen" des Arbeitsbereichs auf Plan generieren. Warten Sie, bis der Plan ausgeführt wurde.
- Klicken Sie auf Protokoll anzeigen, um die Protokolldateien des Terraform-Ausführungsplans zu überprüfen.
- Wenden Sie die Terraform-Vorlage durch Klicken auf Plan anwenden an.
- Überprüfen Sie die Protokolldatei, um sicherzustellen, dass während des Bereitstellungs-, Änderungs- oder Löschvorgangs keine Fehler aufgetreten sind.
- Am Ende des Protokolls finden Sie Informationen, die Sie für die Bereitstellung verschiedener SAP Produkte und Datenbanken benötigen. Kopieren und speichern Sie diese Informationen für Ihre Einsätze. Beispiel:
2024/09/16 12:01:08 Terraform refresh | FLOATING_IP = " xxx.xxx.xxx.xxx "
2024/09/16 12:01:08 Terraform refresh | HOSTNAME = "myhost"
2024/09/16 12:01:08 Terraform refresh | OVPN_FILE = "/root/OpenVPN.ovpn"
2024/09/16 12:01:08 Terraform refresh | PRIVATE_IP = " xxx.xxx.xxx.xxx "
2024/09/16 12:01:08 Terraform refresh | REGION = "eu-de"
2024/09/16 12:01:08 Terraform refresh | SECURITY_GROUP = "secgrp-myhost "
2024/09/16 12:01:08 Terraform refresh | SUBNET = [
2024/09/16 12:01:08 Terraform refresh | "myvpc-subnet-1",
2024/09/16 12:01:08 Terraform refresh | "myvpc-subnet-2",
2024/09/16 12:01:08 Terraform refresh | "myvpc-subnet-3",
2024/09/16 12:01:08 Terraform refresh | VPC = "myvpc"
2024/09/16 12:01:08 Terraform refresh | VPN_HOSTNAME = "xxxxxx.eu-der.vpn-server.appdomain.cloud"
- Ihre OpenVPN Client-Profil-Datei befindet sich auf dem Bastion-Server unter dem in der Ausgabe angezeigten Pfad
OVPN_FILE
. Kopieren Sie die Datei und geben Sie sie an die gewünschten Benutzer weiter. Importieren Sie diese Datei in Ihren OpenVPN Client. Sobald der OpenVPN Client eine Verbindung herstellt, können Sie den privaten IP-Adressraum des Bastion-Servers erreichen.
Diese Automatisierung wird kostenlos angeboten; die bereitgestellte Infrastruktur ist jedoch kostenpflichtig.