Mit einem Update von Goobi workflow sollten auch alle Plugins aktualisiert werden. Dafür sollte am besten auch die Seite Installierte Plugins in Goobi workflow beachtet werden. Sollte diese hingegen noch nicht existieren, müssen die relevanten Dateien im Dateisystem identifiziert werden. Hierbei ist wichtig, auch die REST API nicht zu vergessen.
Befehle aus dieser Anleitung werden am besten mit einem Klick auf das entsprechende Icon kopiert. Andernfalls besteht die Gefahr ungewollte Whitespaces mit zu kopieren.
Sinnvolle Vorarbeiten vor Updatedurchführung
Überprüfung des Zustands
Für einen guten Zustand des Systems sollten vor und/oder nach dem Update die folgenden Dinge geprüft werden:
mysql goobi -e'SELECT DISTINCT ldapgruppenid FROM benutzer WHERE ldapgruppenid NOT IN (SELECT ldapgruppenid FROM ldapgruppen) OR ldapgruppenid IS NULL'
mysql goobi -NBse 'SELECT table_name FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA="goobi" and TABLE_TYPE="BASE TABLE" and ENGINE != "InnoDB"' | while read i; do echo $i; mysql goobi -e "alter table $i ENGINE = InnoDB"; done
Erstellung eines Backups
Sinnvollerweise wird vor dem Backup der Tomcat ausgestellt. Allerdings ist vorher notwendig zu prüfen, dass kein Anwender mehr in Goobi workflow angemeldet ist. Neben der Anzeige der angemeldeten Benutzer in der Oberfläche können die letzten Einträge im Prozesslog oder die letzten Logins für die Bewertung der Lage hilfreich sein:
mysqlgoobi-e'select creationDate, userName, type, left(content,70) from journal order by creationDate desc limit 30'grepuser\ DN/opt/digiverso/logs/goobi.log-B1|tail
Anschließend kann der Tomcat Prozess für Goobi workflow beendet werden:
systemctlstoptomcat9
Mit den folgenden Befehlen können ein Backupverzeichnis erstellt und die Dateien dorthin kopiert werden:
BAK=/home/intranda/BACKUP/$(date-I)&&mkdir $BAKmysqldumpgoobi|gzip> $BAK/goobi.$(date+%s).sql.gzmkdir $BAK/goobi $BAK/webappscp-at $BAK/goobi/opt/digiverso/goobi/{config,xslt,lib,plugins,rulesets,scripts}cp-at $BAK/webapps/var/lib/tomcat{,7,8,9}/webapps/goobicp-at $BAK//opt/digiverso/tomcat-libcp-at $BAK//opt/digiverso/config# If intranda TaskManager is installedcp-at $BAK/webapps/var/lib/tomcat{,7,8,9}/webapps/itmcp-at $BAK//opt/digiverso/itm# If LayoutWizzard is installedcp-at $BAK /opt/digiverso/[L,l]ayout[w,W]izzard
Kopieren der neuen Dateien auf das System
Es empfiehlt sich, die Dateien auf dem zu aktualisierenden System nach /tmp/g3 zu kopieren. Mit der folgenden Funktion können dann die Unterschiede zwischen zwei Konfigurationsdateien leicht ermittelt werden:
Weiter können mit den folgenden Befehlen die Dateien an die korrekten Pfade bewegt werden:
mv/tmp/g3/goobi.war/var/lib/tomcat9/webapps/mv/tmp/g3/statistics_template.*/opt/digiverso/goobi/plugins/statistics/mv/tmp/g3/plugin_intranda_*GUI*.jar/opt/digiverso/goobi/plugins/GUI/mv/tmp/g3/plugin_intranda_administration_*.jar/opt/digiverso/goobi/plugins/administration/mv/tmp/g3/plugin_intranda_command*.jar/opt/digiverso/goobi/plugins/command/mv/tmp/g3/plugin_intranda_step_*.jar/opt/digiverso/goobi/plugins/step/mv/tmp/g3/plugin_intranda_dashboard*.jar/opt/digiverso/goobi/plugins/dashboard/mv/tmp/g3/plugin_intranda_opac*.jar/opt/digiverso/goobi/plugins/opac/mv/tmp/g3/plugin_intranda_import*.jar/opt/digiverso/goobi/plugins/import/mv/tmp/g3/plugin_intranda_export*.jar/opt/digiverso/goobi/plugins/export/mv/tmp/g3/plugin_intranda_statistics*.jar/opt/digiverso/goobi/plugins/statistics/mv/tmp/g3/plugin_intranda_validation*.jar/opt/digiverso/goobi/plugins/validation/mv/tmp/g3/plugin_intranda_workflow*.jar/opt/digiverso/goobi/plugins/workflow/mv/tmp/g3/plugin_intranda_rest_*.jar/opt/digiverso/goobi/lib/# If intranda TaskManager is installedmv/tmp/g3/itm.war/var/lib/tomcat9/webapps/mv/tmp/g3/TaskClient.jar/opt/digiverso/itm/bin/TaskClient.jar
Nun können die vorhandenen Konfigurationsdateien mit den neuen abgeglichen werden.
Gerade Konfigurationsdateien von Plugins können aufgrund einer Änderung des Schemas für die Benennung inzwischen einen anderen Dateinamen haben.
Für den Vergleich der Dateien kann die Funktion gdiff verwendet werden. Die gewünschten Änderungen sollten nun gemergt und in die neuen Dateien übernommen werden.
Nach Abschluss der Arbeiten kann über den Abgleich der Zeitstempel ermittelt werden, ob alle notwendigen Dateien aktualisiert wurden:
Die folgenden Dinge sollten nach einem Update geprüft werden:
Rescue im Falle von auftretenden Problemen
Manchmal kann es vorkommen, dass nach dem Update Fehler auftreten. Die folgenden Punkte helfen dabei, typische Probleme zu identifizieren und zu beheben:
Goobi startet nicht - ActiveMQ
Wenn der Tomcat nach dem Start hängen bleibt, kann der Inhalt des Ordners /opt/digiverso/goobi/activemq/ daran Schuld sein. Leeren und neu starten hilft in diesem Fall:
find/opt/digiverso/goobi/activemq/-typef-delete
LayoutWizzard
Die LayoutWizzard.jar in /opt/digiverso/{goobi,itm}/lib/ müssen gleich sein. Symbolische Links funktionieren nicht.
Durchführung des eigentlichen Updates
Nachdem alle Vorarbeiten durchgeführt wurden, kann das eigentliche Update erfolgen. Dieses ist in einzelnen Schritten detailliert hier erläutert: