Version: GSB7.5Konfiguration
Die GSB-Komponenten dieses Release werden als Spring-Boot basierte Applikationen bereitgestellt. Die einzigen Ausnahmen bilden der Webserver sowie die CoreMedia Management-Tools.
Damit kann ein Großteil der Applikationen mit den Standard Spring-Boot Mechanismen konfiguriert werden. Spring-Boot bietet eine komfortable Möglichkeit infrastrukturspezifische Konfigurationen als externe Konfiguration in sogenannten Runtime-Properties zu definieren. Diese werden außerhalb der eigentlichen Softwareinstallation in sogenannten Properties-Dateien abgelegt.
Beim Start einer GSB-Komponente werden die Runtime-Properties von der Komponente gelesen und für die Konfiguration der jeweiligen Komponente genutzt.
Contents1 Organisation der Runtime-Properties |
1 Organisation der Runtime-Properties
Die Runtime Properties der einzelnen GSB Komponenten können so organisiert werden, dass für eine Umgebung eine möglichst redundanzfreie und einfache Definition der Properties für die einzelnen Servicetypen (Software-Applikationen) und Serviceinstanzen (laufende Prozesse/Instanzen eines Servicetyps) ermöglicht wird.
Die Systemd Service-Instanz Vorlage application@.service definiert beim Start der Anwendungen die folgenden beiden folgenden Properties:
Die Property spring.config.name definiert eine kommaseparierte Liste von PropertyFile-Namen, die beim Start geladen werden. Die Property spring.config.additional-location definiert das Verzeichnis aus dem PropertyFiles beim Start geladen werden.
Die Auswertung der Properties erfolgt bei kommaseparierten Listen immer von links nach rechts, d.h. die spezifischen Definitionen befinden sich in den zuletzt definierten PropertyFile-Namen.
Für die Applikation cae (%p) und Instanz cae1-preview (%i) könnten bspw. folgende exemplarische Properties definiert sein:
application.properties
cae.properties
cae1-preview.properties
Beim Start der Anwendung werden alle drei PropertyFiles gelesen und die enthaltenen Properties wie folgt definiert:
Die Property gsb.tomcat.ajp.enabled ist ausschließlich in der cae -Properties definiert und der Wert wird auf true gesetzt. Die Property repository.url ist sowohl in der application - als auch cae1-preview -Properties definiert. Da die cae1-preview -Properties nach den globalen application -Properties geladen werden, wird die Property mit dem Wert http://contentserver.domain.examle:7001/ior belegt. Die Property server.port ist ausschließlich in cae1-preview definiert, so dass diese Property mit dem Wert 8001 belegt ist.
1.1 Ergänzende Hinweise
In der Property spring.config.additional-location können mehrere Ordner definiert werden, die beim Start berücksichtigt werden. So könnten bspw. neben dem en Ordner der Vorlage /opt/gsb/runtime noch weitere Ordner definiert werden, indem bspw. Systemd Servicetyp oder Serviceinstanz spezifische PropertyFiles abgelegt werden.
Die Definition von "/opt/gsb/runtime,/opt/gsb/runtime/%p,/opt/gsb/runtime/%i" würde in PropertyFiles bspw. in den folgenden Ordnern laden.
- /opt/gsb/runtime
- /opt/gsb/runtime/%p , was für die cae -Applikation zu /opt/gsb/runtime/cae expandiert würde
- /opt/gsb/runtime/%i was für die Serviceinstanz cae1-preview zu /opt/gsb/runtime/cae1-preview expandiert würde.
Die zuletzt definierten Einträge haben hierbei die höchste Priorität und überschreiben ggf. vorherige Definitionen
2 Runtime Properties
Für den Aufbau einer GSB 7.5 Produktivumgebung kann die exemplarische Runtime-Konfiguration des Release als Ausgangsbasis genommen werden. Diese findet sich im infrastructure -Artefak im Ordner runtime.
Die von den GSB-Komponenten unterstützten Runtime-Properties ergeben sich aus drei unterschiedlichen Quellen. Im Einzelnen stehen Runtime-Properties der folgenden Quellen zur Verfügung:
- CoreMedia spezifischen Properties
- Content Server
- Content Application Engine
- Importer
- UAPI Client
- Workflow Server
- Spring Boot Properties
- CAS Properties
- GSB spezifische Properties
2.1 GSB spezifische Propertiesn
Im GSB 7.2.x werden Konfigurationen in sogenannten Build-Properties definiert. Diese werden bei der Installation des GSB genutzt, um die definierte Konfigurationswerte direkt in den Konfigurationsdateien der installierten Softwarekomponenten einzutragen.
Im GSB 7.5.x werden wie skizziert Spring Boot Runtime-Properties genutzt, die außerhalb der SW-Installation in sogenannten Property-Files definiert werden.
Um eine Migration einer GSB 7.2.x Umgebung und konkret die Übernahme/Konvertierung der Build-Properties zu Runtime-Properties zu unterstützen können die für eine Konfiguration der Komponenten genutzten Build-Properties auch für die Definition der Runtime-Properties verwendet werden. Daher kann ein Großteil der Build-Properties auch für die Definition der GSB 7.5.x Runtime-Properties genutzt werden.
Die Build-Properties sollten an die Konventionen der Spring Boot Property-Namen angepasst werden. Für eine Übergangsphase werden die vorhandenen Build-Property-Namen unterstützt. Beim Start einer GSB Komponente werden die alten Property-Namen auf die GSB 7.5 Property-Namen konvertiert. Hierzu liegt in den einzelnen GSB Komponenten eine Mapping-Datei, die neben der Abbildung der Properties auch ggf. vorhandene Defaultwerte definiert. Die Mappingdateien werden im Kapitel "Runtime-Properties Mapping" aufgeführt.
Mapping von Build- auf Runtime-Properties
Die Build-Property indexer_solr_http_port wird auf die Runtime-Property indexer.solr.http.port abgebildet. Die Runtime-Property indexer.solr.webapp hat mit solr einen Defaultwert. Defaultwerte werden durch einen Doppelpunkt getrennt nach der Build-Property angegeben.
3 Runtime-Properties Mappings
Beim Start einer GSB Komponente werden die Property-Namen der GSB 7.2.x-Komponenten auf die aktuellen GSB 7.5 Property-Namen konvertiert. Hierzu liegt in den einzelnen GSB Komponenten eine Mapping-Datei, die neben der Abbildung der Properties auch ggf. vorhandene Defaultwerte definiert. Für die Komponentenen CAE , Eventdispatcher und Indexer existieren folgende Mappingdateien:
CAE
Eventdispatcher
Indexer