Zielgruppe BetriebVersion: GSB10.0JCR Publisher 10.0.2
Der JCR Publisher berücksichtigt die Dokumentmodelländerungen zwischen dem GSB 7 und GSB 10.0.2 und das geänderte interne Speicherformat der Dokumenten und deren Properties.
Wichtiger Hinweis: |
---|
Diese Version kann auch für den GSB 10.0.3 verwendet werden. |
1 Einleitung
Der JCR Publisher liest den Content aus einem GSB 7.2 Repository, transformiert diesen in ein GSB 10.0.2 kompatibles Format und importiert den transformierten Content anschließend in ein GSB 10.0.2 Repository.
Der zu migrierenden Content wird hierzu aus einem GSB 7.2 Live Contentrepository (bspw. dem GSB 7.2 Master-Server) gelesen. So wird sichergestellt, dass ausschließlich publizierte Stände bei der Migration mit berücksichtigt werden.
Hinweis: |
---|
Ein Export des GSB 7.2 Contents aus dem Redaktionssystem ist prinzipiell auch möglich. Hierbei gilt es aber zu beachten, dass bei dem Export durch den JCR Publisher jeweils der aktuellste Stand eines Dokumentes exportiert wird. Ein ggf. älterer publizierter Stand eines GSB Dokumentes wird bei dieser Konfiguration dann nicht berücksichtigt. |
Der Import des vom JCR Publisher transformierten Contents in das GSB 10.0.2 Repository wird gegen ein GSB 10.0.2 Live-Repository durchgeführt. D.h. die GSB Dokumente und deren Ablagestruktur werden eins zu eins übernommen. Darüber hinaus benötigte Jackrabbit interne "Metainformationen" wie Events, etc. werden durch den JCR Publisher nicht angelegt. Der Content ist somit noch nicht für eine redaktionelle Bearbeitung geeignet.
Um den transformierten Content in ein GSB 10.0.2 Redaktionssystem importieren zu können, muss dieser abschließend noch aus dem "Migrationsrepository" exportiert und anschließend in das Contentrepository des GSB 10.0.2 Redaktionssystem importiert werden.
Der JCR Publisher ist als Standalone Java-Applikation realisiert, die außer eines Java-Runtime-Environments keine weitere Software benötigt. D.h. die "Connectoren" zu den GSB 7.2 und GSSB 10.0 Content-Repositories sind in der Applikation bereits vorhanden.
Hinweis: |
---|
Das CoreMedia CMS und damit auch der GSB 7.2 unterstützt nur Java 8, so dass der JCR Publisher mit Java 8 betrieben werden muss. Es gelten für die Nutzung des JCR Publishers somit die Installations- und Betriebsvoraussetzungen des GSB 7.2. Die exemplarische Systemd Service-Unit |
Hier können Sie den JRC-Publisher herunterladen.
2. Installation
Um den JCR Publisher für die Migration von Inhalten aus einem bestehenden GSB 7.2 in ein GSB 10.0.2 Repository zu verwenden, muss neben dem GSB 7.2 Contentrepository sowohl der JCR Publisher als auch ein temporär für den Import benötigtes JCR Content Repository installiert werden.
Die folgenden Unterkapitel beschreiben jeweils die Installation des JCR Publishers bzw. des JCR Repositories für die Migration.
2.1. Installation des JCR Publishers
Der JCR Publisher wird als Zip-Archiv ausgeliefert. Dieses Zip-Archiv muss auf dem Zielsystem entpackt werden. Der Standard-Installationspfad ist:
/opt/gsbos/software/jcrpublisher
Innerhalb des entpackten JCR Publishers befinden sich im Verzeichnis infrastructure
die Beispiel-Laufzeitkonfiguration und eine systemd Service-Unit-Definition zum Starten des Publishers per Systemd
.
Das runtime-Verzeichnis (infrastructure/runtime/jcrpublisher-standardlsg
) wird analog zum GSB 10.0.2 nach '/opt/gsbos/runtime' kopiert. Dieses enthält eine Beispielkonfiguration für die Migration des Mandanten standardlsg. Diese Beispielkonfiguration kann als Grundlage und Ausgangsbasis für die Anpassung an konkrete Migrationsszenarien genutzt werden, indem die Konfigurationen für den Mandantennamen und die benötigten Endpunkte (GSB 7.2 und GSB 10.0.2 Repositories) an die jeweilige Infrastruktur angepasst werden.
Die Systemd Service-Unit muss nach /etc/systemd/system
kopiert werden. Die Service-Unit entspricht vom Aufbau und den Definitionen her den Service-Units des GSB 10.0.2 und stützt sich auf dieselben Annahmen und Konventionen. Ggf. müssen die Definitionen in der Service-Unit an die Vorgaben der Migrationsinfrastruktur angepasst werden (bspw. der Pfad zur Java-Installation).
Auf den möglichen Anpassungen an der Runtime-Konfiguration wird im Kapitel "Runtime-Konfiguration" näher eingegangen.
2.2. Installation des JCR Repositories
Als Ziel für die Contentmigration des JCR Publishers wird ein JCR Repository benötigt. Dabei handelt es sich um ein GSB 10.0.2 Live Repository (s.a. Anmerkungen im Kapitel "Einleitung").
Das JCR Repository für die Migration sollte als dediziertes Migrationsrepsitory aufgesetzt werden, welches nach Abschluss der Contentmigration wieder gelöscht werden kann. Es empfiehlt sich als Vorlage für das Migrationsrepsitory die im GSB 10.0.2 Release vorhandene Runtime-Konfiguration des Master-Repositories zu verwenden (Service-Instanz repository-master
). Die exemplarische Runtime-Konfiguration des JCR Publishers stützt sich auf diese Annahme, d.h. in der Runtime ist das Master-Repository (Servername repository.master.example.com
und Port 7001
) als GSB 10.0.2 Endpunkt für die Migration eingetragen.
Details zur Installation und Konfiguration des GSB 10.0.2 Master-Repositories finden sich in der GSB 10.0.2 Installationsanleitung und können dort nachvollzogen werden.
3. Runtime-Konfiguration
Die Runtime-Konfiguration des JCR Publishers wird anhand der durch Systemd gestarteten `Service-Instanz ermittelt.
Dem Software-Packet liege eine Beispiel-Runtime-Konfiguration für die JCR-Publisher Instanz jcrpublisher-standardlsg
bei.
3.1. Aufbau der Runtime-Konfiguration
Die Runtime-Konfiguration ist in der Datei jcrpublisher.properties
definiert. Die folgende Definition entspricht der mitgelieferten Beispiel-Runtime-Konfiguration.
Unresolved directive in jcrpublisher.adoc - include::/home/skluempe/gsbos/basis/documentation-internal/infrastructure/runtime/jcrpublisher-standardlsg/jcrpublisher.properties[]
Die einzelnen Properties sind für ein konkretes Migrationsszenario wie folgt zu definieren:
customer
enthält den Namen des zu migrierenden Mandanten. An dieser Stelle muss der technische Name des Mandanten angegeben werden.
Sektion GSB 7.2 Master-Repository
source.ior.url
IOR-Url unter dem das GSB 7.2 Quellrepository erreichbar ist .source.user
definert den technischen Benutzer für den Abruf des zu migrierenden GSB 7.2 Contents (Defaultwebserver
)source.password
Passwort des technischen Benutzers für den Abruf des zu migrierenden GSB 7.2 Contents (Defaultwebserver
)
Sektion GSB 10 Master-Repository
target.url
Url unter der das GSB 10.0.2 Master Repository erreichbar ist und in den der migrierte Content des Mandanten geschrieben wird.
3.2. Bereitstellen der Runtime-Konfiguration
Zur Bereitstellung einer eigenen Runtime-Konfiguration für die Migration des Mandanten MANDANT
muss die mitgelieferte Beispielkonfiguration nach jcrpublisher-MANDANT
kopiert werden.
In der kopierten Datei jcrpublisher.properties
muss dann der Master-Server des zu migrierenden GSB 7.2 Servers in der Sektion GSB 7.2 Repository eingetragen werden. Das Auslesen des GSB 7.2 Contents erfolgt idealerweise mit dem Benutzer "webserver", der im GSB 7.2 auch für den Zugriff der cae
-Webapplikation verwendet wird. Eine Anpassung des Benutzers und Passwords ist üblicherweise nicht erforderlich, da dieser Benutzer über hinreichende Rechte zum Auslesen des Contents eines Mandanten verfügt.
In der Sektion GSB 10 Repository der Propertydatei ist die Url des GSB 10.0.2 Live-Repository (Ziel der Migration) einzutragen.
Hinweis: |
---|
Es empfiehlt sich für die Durchführung der Migration ein dediziertes "Migrations-Repository" aufzusetzen, welches ausschließlich für die Migration genutzt und anschließend wieder gelöscht werden kann. Die Nutzung eines ggf. in der Infrastruktur von handenen produktiven Master-Repositories empfiehlt sich nicht, da hier dann Inhalte von produktiven Mandanten und Migrationsinhalte gemischt werden. |
4. Durchführung der Migration
Der JCR Publisher wird per Systemd
gestartet und gestoppt. Die Befehle hierfür sind z.B. für die Instanz MANDANT
:
- Start des Publishers:
systemctl start jcrpublisher@jcrpublisher-MANDANT
- Stopp des Publishers:
systemctl stop jcrpublisher@jcrpublisher-MANDANT
Der Fortschritt des JCR Publishers lässt sich über die Log-Files im Ordner /space/gsbos/logs/jcrpublisher-MANDANT
verfolgen.
Nachdem die Inhalte aus dem GSB 7.2 Repository ausgelesen wurden, wird die Einspielung dieser in das JCR Repository gestartet. Der Abschluss dieses Vorgangs wird ebenfalls im Log-File vermerkt. Die relevanten Ausgaben sind wie folgt aufgebaut.
2018-10-04 18:02:45.139 [ INFO] de.bund.gsb.jcrpublisher.tx.TXProvider: Committed transaction 'http://repository.master.example.com:7001/repository/importagent/transaction/5d12debe-2ea7-47da-8aa5-77a8865e6fe2'2018-10-04 18:02:45.140 [ INFO] de.bund.gsb.jcrpublisher.JcrPublisherImpl: Synchronisierung abgeschlossen. Benutze für das Listening das Timestamp: 50876:2147483647:28680158 mit folgender Zeit: 04.10.18 17:57
Nachdem die Übernahme der Inhalte in das GSB 10.0.2 Repository abgeschlossen ist (s.a. Logausgabe "Synchronisierung abgeschlossen. …"), kann der JCR Publisher gestoppt werden.
Anschließend muss der migrierte Content noch aus dem GSB 10.0.2 Master Repository exportiert werden, um diesen anschließend in das GSB 10.0.2 Repository des Contentservers zu importieren. Der Ex- und anschließende Import kann mit den entsprechenden GSB 10.0.2 Standardaufrufen durchgeführt werden, die in der GSB 10.0.2 Dokumentation beschrieben sind.
Hinweis: |
---|
Je nach Größe des zu exportierenden Contents kann entweder ein synchroner oder ein asynchroner Export gestartet werden. Im Anschluss hieran liegt der exportierte Content als Zip-Archiv vor, welches anschließend in das GSB 10.0.2 Redaktionssystem eingespielt werden kann. |
Bei Verwendung eines dedizierten "Migrations-Repositories" (s.o.) kann dieses im Anschluss an die Migration gelöscht werden.