GSB 7.0 Standardlösung

Mandantenbasis klonen

An dieser Stelle wird beschrieben, wie die Basis eines neuen GSB Mandanten auf Grundlage des Mandanten standardlsg angelegt wird.

Grundlage und Ausgangspunkt für das Clonen des Mandanten können verschiedene Quellen sein:

  • standardlsg-Basis: Die Basis eines Mandanten beinhaltet den Source-Code des Mandanten (bspw. JSP-Templates, Java-Sourcen, Spring-Konfiguration). Für den Start der Entwicklung eines neuen Mandanten sollte ein Clon der Basis des Mandanten standardlsg durchgeführt werden, da hierfür die Sourcen des neu geclonten Mandanten für die Entwicklung benötigt werden.
  • standardlsg-Release: Der Clone eines Mandantenrelease kann genutzt werden, um auf einfache Art einen zweiten Mandanten (genauer ein zweites Mandantenrelease) zu erstellen, welches dann für Testszenarien bspw. dem Test der Multimandantenfähigkeit genutzt wird.

Die weitere Beschreibung geht davon aus, dass ein Clone des standardlsg-Release durchgeführt wird. Dieselben Schritte müssen auch für das Clonen der standardlsg-Basis durchgeführt werden, wobei hierbei natürlich die Basis des Mandanten standardlsg zu kopieren ist, um die Basis des neuen Mandanten anzulegen.

Ausgangspunkt und Grundlage für den neuen Mandanten ist ein definierter Releasestand der Standardlösung. Nachdem die neue Mandantenbasis angelegt worden ist, enthält diese somit eine 1zu1-Kopie der Basis der Standardlösung und steht als "Clon" der Standardlösung für die anschließende Umsetzung eines Mandantenprojektes zur Verfügung.

Die weitere Entwicklung bzw. Individualisierung des Mandanten wird dann im Rahmen eines Mandantenentwicklungsprojektes durchgeführt. Weiterhin beschreibt dieses Dokument auch nicht die Installation und Konfiguration des Mandanten auf einer Hostingplattform und geht auch nicht auf die Ersteinrichtung des Mandanten in der Hostingumgebung ein.

Vorbereitung

Im weiteren Verlauf wird davon ausgegangen, dass

  • die Tätigkeiten unter der Kennung gsbos durchgeführt werden,
  • eine Bash 4.x für das Anlegen des neuen Mandanten verwendet wird,
  • die Standardlösung im gsbos Homeverzeichnis im Ordner releases/customers/standardlsg abgelegt ist sowie
  • für das Clonen der Standardlösung die Version 10.1 verwendet wird.

Weiterhin wird im Folgenden davon ausgegangen, dass der neue Mandant mit dem Mandantennamen newcustomer angelegt werden soll.

Hinweis:

Für die Benennung der GSB Mandanten sollte ein konsistentes Namensschemata verwendet werden.

Da es sich bei den Namen der GSB Mandanten nur um einen technischen Namen handelt, empfiehlt es sich, nur Kleinbuchstaben und Ziffern für die Mandantennamen zu verwenden.

Um das Anlegen des neuen GSB Mandanten einfacher durchführen zu können, werden zwei Shell-Variablen definiert, die die Mandantennamen der Vorlage und des neuen Mandanten enthalten:

export SRC_CUSTOMER=standardlsg

export DEST_CUSTOMER=newcustomer

Der Mandant newcustomer wird initial als Kopie der Standardlösung (Mandant standardlsg) mit Hilfe des folgenden Kommandos erstellt:

cp -r ~/releases/customers/${SRC_CUSTOMER}/10.1.0 ~/${DEST_CUSTOMER}

Nach Ausführung des Kommandos liegt die Vorlage des neuen Mandanten im Ordner ~/newcustomer. Der neu angelegte Mandant wird nicht direkt im Ordner releases/customers abgelegt, da es sich bei der Kopie nicht um ein Mandantenrelease handelt, sondern die Kopie als Ausgangspunkt für die Entwicklung und anschließende Erstellung eines Mandantenreleases genutzt werden kann.

Content des Mandanten

Der Content des Mandanten liegt im Mandantenrelease im Unterordner content in Form von zwei Zip-Dateien.

  • zip enthält den redaktionellen Content und damit die Website des Mandanten
  • zip umfasst die Editor-Konfiguration des Mandanten

Die Inhalte sind beim Clonen eines Mandanten ebenfalls anzupassen, so dass die Zip-Dateien zunächst entpackt werden müssen.

mkdir ~/${DEST_CUSTOMER}/content/{content,editor}

unzip ~/${DEST_CUSTOMER}/content/content.zip -d ~/${DEST_CUSTOMER}/content/content

unzip ~/${DEST_CUSTOMER}/content/editor.zip -d ~/${DEST_CUSTOMER}/content/editor

rm ~/${DEST_CUSTOMER}/content/*zip

Anpassung des neuen Mandanten

Die im vorherigen Kapitel angelegte Kopie des Mandanten newcustomer ist eine einfache Kopie des Mandanten standardlsg. Die Inhalte des Mandanten müssen somit noch von standardlsg auf den neuen Mandanten newcustomer angepasst werden. Die hierfür notwendigen Schritte werden in den folgenden Unterkapiteln beschrieben.

Anpassung Datei- und Ordnernamen

Einige Datei- bzw. Ordnernamen des GSB Mandanten entsprechen dem Mandantennamen bzw. enthalten den Mandantennamen. Die betreffenden Dateien- bzw. Ornder müssen somit auf den neuen Mandanten newcustomer umgestellt werden.

Hierzu werden die Datei- und Ordnernamen mit den folgenden Kommandos angepasst:

cd ~/${DEST_CUSTOMER}

# Replace filenames lowercase standardlsgfor file in $(find . -depth -name "*${SRC_CUSTOMER}*")

do

  fn=$(basename $file)

  mv $file $(dirname $file)/${fn//${SRC_CUSTOMER}/${DEST_CUSTOMER}}

done

# Replace filenames uppercase Standardlsgfor file in $(find . -depth -name "*${SRC_CUSTOMER^}*")do fn=$(basename $file) mv $file $(dirname $file)/${fn//${SRC_CUSTOMER^}/${DEST_CUSTOMER^}}done

Anpassung Dateiinhalte

Nachdem die Datei- und Ordnernamen angepasst worden sind werden jetzt abschließend die Vorkommen der Zeichenkette standardlsg in den Dateien des Mandanten auf den neuen Mandantennamen newcustomer geändert.

Hierzu werden die folgenden Kommandos ausgeführt:

cd ~/${DEST_CUSTOMER}

for file in $(find . -depth -type f -a ! -name '*class')

do

  sed -i "s/${SRC_CUSTOMER}/${DEST_CUSTOMER}/g" ${file}

  sed -i "s/${SRC_CUSTOMER^}/${DEST_CUSTOMER^}/g" ${file}

done

Damit ist der neue Mandant newcustomer erfolgreich angelegt worden.

Finalisierung Content

Abschließend werden jetzt noch die beiden Zip-Dateien mit dem Content des Mandanten mit Hilfe der folgenden Kommandos erstellt:

cd ~/${DEST_CUSTOMER}/content/content

zip -r ../content.zip ${DEST_CUSTOMER}

cd ~/${DEST_CUSTOMER}/content/editor

zip -r ../editor.zip ${DEST_CUSTOMER}

rm -r ~/${DEST_CUSTOMER}/content/{content,editor}

Vorbereitung Deployment

Um den soeben neu angelegten GSB Mandanten newcustomer testweise analog zum Mandanten standardlsg deployen zu können, muss dieser in einer zum Standardlsg-Release analogen Verzeichnisstruktur abgelegt werden.

D.h. der neue Mandant wird bspw. im Ordner ~/releases/customers/${DEST_CUSTOMER}/0.1.0 abgelegt. Die Versionsnummer 0.1.0 ist willkürlich gewählt und kann bei Bedarf auf einen gewünschten Wert angepasst werden.

Die Integration des Mandanten newcustomer in die Erstellung des Platform-Bundle und das Deployment ist in der GSB Installationsanleitung sowie den Hinweisen zur Integration eines Mandanten beschrieben, so dass an dieser Stelle lediglich auf die betreffenden Dokumente verwiesen wird.