Zielgruppe BetriebVersion: GSB10.1Mandantenbasis 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 Mandantenstandardlsg
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 Mandantenzip
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 standardlsg
for 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.