Kontakt & Service
Jetzt Beratung vereinbaren

In wenigen Schritten einen Beratungs­termin mit unseren Experten buchen.

News & Wissen Docker & der SAP Cloud Connector

Ziel ist es, dass zwei Container mithilfe von Docker erstellt und konfiguriert werden. In diesen beiden Containern läuft jeweils ein SAP Cloud Connector. Ein Container dient als Master und der andere als Shadow. Am Ende sollen beide Konnektoren mit einem S-User verbunden werden und ein SAP-System zur Verbindung bereitstellen. Beim Master werden Konfigurationen von SAP-Systemen etc. eingestellt, beim Shadow werden alle Konfigurationen gespiegelt. Diese Konfigurationen werden anschließend mit Docker exportiert. Die daraus folgende Datei kann man weitergeben und wieder mittels Docker importieren.

Was ist Docker?

Docker ist ein Programm, das verwendet wird, um Anwendungen in Containern zu erstellen, zu testen und bereitzustellen. Software wird in standardisierten Einheiten, sogenannten Containern, verpackt. In diesen Containern ist alles enthalten, was zum Ausführen der Software erforderlich ist. Mithilfe von Docker können Anwendungen in vielen Umgebungen laufen sowie schnell bereitgestellt und skaliert werden.

Hier befindet sich das Setup von Docker für Windows.

Hier befindet sich das Dockerfile.

Was ist Docker?

Was ist der SAP Cloud Connector?

Der SAP Cloud Connector sorgt hauptsächlich dafür, dass eine Verbindung zwischen On-Premise-SAP-Systemen und der SAP Cloud Platform hergestellt werden kann. Der SAP Cloud Connector ist vor allem essentiell, wenn Anwendungen aus der Cloud betrieben werden und die Anwendungen Zugriff auf die Unternehmensdaten aus dem On-Premise-System benötigen. Die Verbindung zu On-Premise-Systemen wird vom SAP Cloud Connector via VPN hergestellt, so dass Cloud-Anwendungen auf aktuelle Daten aus den SAP-Systemen, Funktionsbausteinen und anderen Services zugreifen können. Die Daten werden dabei immer wieder neu aus dem System geladen und nicht in der Cloud gespeichert.

Was ist der SAP Cloud Connector?

Docker-Grundlagen

Docker Container werden von Docker Images erstellt. Ein Image ist im Grunde nur ein Bauplan für Docker. Ein Container hingegen ist eine Instanz von einem Image und kann zur Laufzeit verändert werden. Für die Erstellung eines Images ist eine Textdatei mit dem Namen „Dockerfile“ notwendig. Ein Dockerfile umfasst mehrere Befehle, die nacheinander abgearbeitet werden.

Grundlegende Dockerfile-Befehle:

FROM

FROM wird genutzt, um ein bereits existierendes Image mit einem Tag als Basis zu verwenden.
Beispiel: FROM centos:7

RUN

Mit RUN kann man Shell-Befehle im Container ausführen.
Beispiel: RUN mkdir /test

ADD

Mit ADD können Dateien in den Container geladen oder überschrieben werden.
Beispiel: ADD ./config /etc/config

EXPOSE

Durch EXPOSE können Container an einen bestimmten Port gebunden werden.
Beispiel: EXPOSE 80

Grundlegende Docker CLI-Befehle:

docker run -p 8444:8443 -h sapccshadow --name sapccshadow -d sapccshadow:1

Mit diesem Befehl wird ein Container mit dem Host- und Containernamen „sapccshadow“ vom Image „sapccshadow:1“ ausgeführt. Der externe Port ist 8444 und der interne Port ist 8443. Die Option –d sorgt dafür, dass der Befehl im Hintergrund ausgeführt wird.

docker stop sapccmaster

Mit diesem Befehl wird der Container „sapccmaster“ gestoppt.

docker start sapccmaster

Mit diesem Befehl wird der Container „sapccmaster“ gestartet.

docker rm sapccmaster

Mit diesem Befehl wird der Container „sapccmaster“ gelöscht.

docker image rm sapccmaster:1

Mit diesem Befehl wird das Image „sapccmaster:1“ gelöscht.

docker load –i image.tar

Mit diesem Befehl wird das Image mit dem Namen „image.tar“ geladen.

docker ps

Mit diesem Befehl werden alle laufenden Container angezeigt.

docker images

Mit diesem Befehl werden alle existierenden Images angezeigt.

Den SAP Cloud Connector & Docker installieren und konfigurieren

Hier befindet sich das Setup von Docker für Windows.

Nachdem Docker installiert wurde, kann man über die Kommandozeile mit Docker interagieren. Im Folgenden wird nun der SAP Cloud Connector installiert und der Master bzw. Shadow-Container mit Docker aufgesetzt.

Hier befindet sich das Dockerfile.

Nachfolgend wird das Dockerfile Schritt für Schritt erläutert:

FROM centos:7

Mit diesem Befehl wird CentOS mit der Versionsnummer 7 als Basis verwendet.

RUN yum -y install initscripts which unzip wget net-tools less

Mit diesem Befehl werden alle notwendigen Pakete für das Herunterladen, Installieren und Starten von der SAP JVM bzw. dem SAP Cloud Connector installiert. Durch die Option „-y“ wird alles ohne Bestätigung installiert.

WORKDIR /tmp/sapdownloads

Mit diesem Befehl wird das Verzeichnis „/tmp/sapdownloads“ erstellt, wenn es noch nicht existiert. Anschließend wird in das eingegebene Verzeichnis für den nächsten Befehl gewechselt.

RUN

wget --no-check-certificate --no-cookies --header "Cookie: eula_3_1_agreed=tools.hana.ondemand.com/developer-license-3_1.txt; path=/;" -S https://tools.hana.ondemand.com/additional/sapcc-2.12.1.1-linux-x64.zip && \

wget --no-check-certificate --no-cookies --header "Cookie: eula_3_1_agreed=tools.hana.ondemand.com/developer-license-3_1.txt; path=/;" -S https://tools.hana.ondemand.com/additional/sapjvm-8.1.059-linux-x64.rpm && \

unzip sapcc-2.12.1.1-linux-x64.zip && \

rpm -i sapjvm-8.1.059-linux-x64.rpm && \

rpm -i com.sap.scc-ui-2.12.1-5.x86_64.rpm

Mit diesem Befehl werden mehrere Programme mit „&&“ nacheinander ausgeführt, damit alles im Verzeichnis „/tmp/sapdownloads“ abgelegt wird. Als erstes werden der SAP Cloud Connector und die SAP JVM mit dem Programm „wget“ heruntergeladen. Danach wird der SAP Cloud Connector mit „unzip“ entpackt. Zuletzt wird mit „rpm“ die SAP JVM bzw. der SAP Cloud Connector installiert.

RUN

pw=$(/opt/sapjvm_8/bin/java -cp /opt/sap/scc/plugins/com.sap.scc.rt*.jar -Djava.library.path=/opt/sap/scc/auditor com.sap.scc.jni.SecStoreAccess -path /opt/sap/scc/scc_config -p | awk -F '[][]' '{print $2}') && \

keytool=/opt/sapjvm_8/bin/keytool && \

storePath=/opt/sap/scc/config/ks.store && \

$keytool -delete -alias tomcat -keystore $storePath -storepass $pw && \

$keytool -genkey -v -keyalg RSA -alias tomcat -keypass $pw -keystore $storePath -storepass $pw -dname "CN=localhost, OU=Cpro, O=Cpro" -ext SAN=DNS:localhost,IP:127.0.0.1 && \

$keytool -selfcert -v -alias tomcat -storepass $pw -keystore $storePath

Dieser Befehl ist optional. Damit werden ebenfalls mehrere Programme mit „&&“ nacheinander ausgeführt, da mehrere Variablen am Anfang definiert sind und diese anschließend mehrmals benutzt werden. Durch diesen Befehl wird ein neues selbstsigniertes Zertifikat generiert, das von Webbrowsern importiert werden kann. Nach diesem Import kann problemlos ohne Fehlermeldungen eine sichere Verbindung zum SAP Cloud Connector hergestellt werden.

EXPOSE 8443

Mit diesem Befehl wird Docker informiert, dass Container am Port 8443 gebunden werden.

USER sccadmin

Mit diesem Befehl werden alle folgenden Befehle unter dem User „sccadmin“ ausgeführt. Dieser User ist für den SAP Cloud Connector wegen Berechtigungen essentiell.

WORKDIR /opt/sap/scc

Mit diesem Befehl wird das Verzeichnis „/opt/sap/scc“ erstellt, wenn es noch nicht existiert. Anschließend wird für den nächsten Befehl in das eingegebene Verzeichnis gewechselt.

ENTRYPOINT JAVA_HOME=/opt/sapjvm_8 /opt/sap/scc/go.sh

Mit diesem Befehl wird der Pfad zur SAP JVM festgelegt und anschließend der SAP Cloud Connector gestartet.

Nachdem das Dockerfile heruntergeladen wurde, folgen nun die Schritte, um die Container zum Laufen zu bringen bzw. die Konnektoren zu konfigurieren.

Folgende Befehle müssen nacheinander in der Kommandozeile im Verzeichnis ausgeführt werden, wo sich das Dockerfile befindet:

docker build --tag cpro-ips.com/cloud_connector:master .

Dieser Befehl erstellt ein Image mit dem Namen „cpro-ips.com/cloud_connector:master“ von dem Dockerfile im aktuellen Verzeichnis. Die Option –-tag sorgt dafür, dass der Name im Format „Name:Tag“ ist.

docker build --tag cpro-ips.com/cloud_connector:shadow .

Der gleiche Befehl nur für den Shadow.

docker run -d --rm -p 8443:8443 -h sapccmaster --name sapccmaster cpro-ips.com/cloud_connector:master

Mit diesem Befehl wird ein Container mit dem Host- und Containernamen „sapccmaster“ vom Image „cpro-ips.com/cloud_connector:master“ ausgeführt. Der externe Port ist 8443 und der interne Port 8443. Die Option –d sorgt dafür, dass der Befehl im Hintergrund ausgeführt wird und die Option –rm bewirkt, dass der Container nach dem Beenden gelöscht wird.

docker run -d --rm -p 8444:8443 -h sapccshadow --name sapccshadow cpro-ips.com/cloud_connector:shadow

Der externe Port muss für den Shadow ein anderer sein, in diesem Fall 8444, weil dieser Port vom Master bereits belegt ist.

Es sollten jetzt beide Cloud Konnektoren unter localhost:8443 bzw. localhost:8444 erreichbar sein. Der User zum Anmelden lautet „Administrator“ und das Standardpasswort „manage“. Dieses Passwort muss nach dem Anmelden geändert werden. Nun folgen die Schritte für die Konfiguration der Cloud Konnektoren.

Unter localhost:8443 wird „Master“ als Installationstyp ausgewählt:

Docker & Cloud Connector

Unter localhost:8444 wird „Shadow“ als Installationstyp ausgewählt:

Anschließend müssen unter localhost:8443 diese Pflichtfelder ausgefüllt werden. Wenn ein Trial-Account benutzt wird, muss bei Subaccount am Ende noch die S-User-ID Anzeige „trial“ stehen. Beim Subaccount User reicht die S-User-ID aus:

Nun muss unter localhost:8443 „High Availability“ aktiviert werden. Das findet man links im Menü unter „Connector“:

Unter localhost:8444 müssen danach der Master Host, Master Port und der eigene Host konfiguriert werden:

Für den Master Host muss die IP-Adresse vom Master Container eingegeben werden. Der Port lautet 8443. Für den eigenen Host muss die IP-Adresse vom Shadow Container eingegeben werden:

Um die IP-Adresse des Master Containers bzw. Shadow Containers herauszubekommen, muss folgender Befehl in der Kommandozeile ausgeführt werden:

docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" CONTAINER ID

Die Container ID für den Master Container bzw. Shadow Container findet man mit dem Befehl „docker ps“ unter den Imagenamen „cpro-ips.com/cloud_connector:master“ bzw. „cpro-ips.com/cloud_connector:shadow“.

Danach kann die Verbindung zum Master mit Klick auf „Connect“ hergestellt werden und der S-User sollte beim Shadow gespiegelt sein:

Bei der Master-Instanz im Menü unter dem S-User unter „Cloud To On-Premise“ können ABAP Systeme etc. hinzugefügt werden, die ebenfalls gespiegelt werden:

Nach der Konfiguration werden mit folgenden Befehlen die Änderungen am Master Container und am Shadow Container unter dem Image „cpro-ips.com/cloud_connector:master“ bzw. „cpro-ips.com/cloud_connector:shadow“ gespeichert:

docker commit sapccmaster cpro-ips.com/cloud_connector:master

docker commit sapccshadow cpro-ips.com/cloud_connector:shadow

Zuletzt kann man alles lokal unter einer Datei speichern:

docker save –o Dateiname.tar cpro-ips.com/cloud_connector:master cpro-ips.com/cloud_connector:shadow

Diese Datei kann mit Docker importiert werden:

docker load –i Dateiname.tar

Fazit: Docker & der SAP Cloud Connector

Nachdem alles konfiguriert wurde, hat man nun zwei isolierte Container, in denen jeweils ein Docker & SAP Cloud Connector läuft. Diese sind einfach zu verteilen und können problemlos auf allen unterstützten Plattformen von Docker importiert und anschließend gestartet werden. Ein Container ist Master und einer ist Shadow, wobei noch mehrere Shadows bzw. SAP-Systeme etc. hinzugefügt werden können. Zuletzt müssen diese Container nach einiger Zeit, etwa aufgrund von Sicherheitslücken, aktualisiert werden. Dafür werden bei vielen Containern Programme, beispielsweise Kubernetes oder Docker Swarm, genutzt.

 

Newsletter Setzen Sie auf fundiertes Wissen aus allen Bereichen unserer Branche. Regelmäßig und stets aktuell.
Beratende Person
Kontakt Haben Sie Fragen oder wünschen weitere Informationen? Unsere Experten beraten Sie gerne.