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.

1. Einleitung

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.

2. 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 0.0 verwendet wird.

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

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 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.0.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.

2.1. 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

3. 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.

3.1. 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}
for file in $(find . -depth -name "*${SRC_CUSTOMER}*")
do
  fn=$(basename $file)
  mv $file $(dirname $file)/${fn//${SRC_CUSTOMER}/${DEST_CUSTOMER}}
done

3.2. 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)
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.

3.3. 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}

4. 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.