====== Alfresco Upgrade ====== Alfresco wurde als Installationspaket ausgeliefert, das letzte war 201711. Installiert auf dem Server lion ist die Version 201707. Die letzte große Aktualisierung war das Paket 201707-GA (General availability). Die Upgrade-Seite rät, immer eine Neuinstallation durchzuführen und den existierenden Datenbestand anschließend auf die Neuinstallation zu kopieren. Positiv ist, dass die Software selbstständig merkt, wenn die Datenbank einen älteren Stand hat und diesen sofort aktualisiert. Diese Seite beschreibt das Vorgehen beim Aktualisieren in meinem Umfeld (1x Produktivsystem - Ubuntu Server, 1x Testsystem - Debian Desktop). Ab dem Jahr 2018 gibt es die Alfresco Version 6. Diese Version wird nur noch als Docker Container angeboten und bedarf daher eines völlig neuen Installationswegs. Installation, Upgrade, Sicherung und Datenübernahme müssen ausführlich getestet werden. Derzeit bleibe ich auf der Version 201707. ===== 1. Installation auf dem Testsystem ===== Alfresco ist auf dem Testsystem nicht gestartet, Ich lösche den Pfad "~/alfresco-community" und habe damit ein leeres System. Das Installationspaket wird gestartet und der grafische Wizard führt durch die Erstinstallation. Die Warnung zu kleinem Speicher und fehlenden Cores kann ignoriert werden. ===== 2. Neue Test Installation starten und ausprobieren ===== Nun kann das Testsystem mit "~/alfresco-community/alfresco.sh start" gestartet werden. Anschließend die neuen log's checken und per "http://ip-adresse:8080/share" eine Verbindung aufbauen. Die Funktionalität ausprobieren... ===== 3. Alfresco Keystore erzeugen und testen ===== Für die SSL Verschlüsselung ist es erforderlich, dass der Alfresco Keystore aktualisiert wird. In "~/alfresco-community/alf_data/keystore" gibt es hierfür ein Skript "generate_keystores.sh". **!! Wichtig !!** In diesem Skript muss der korrekte Pfad "~/alfresco-community" gesetzt werden. Standard ist hier "/opt/alfresco-5.2" Am Ende gibt es einen Hinweis, welche Dateien anzupassen und zu kopieren sind: You must copy the following files to the correct location. /home/andreas/ssl.repo.client.keystore /home/andreas/ssl.repo.client.truststore eg. for Solr 4 the location is SOLR_HOME/workspace-SpacesStore/conf/ and SOLR_HOME/archive-SpacesStore/conf/ /home/andreas/alfresco-community/alf_data/keystore/browser.p12 has also been generated. Please ensure that you set dir.keystore=/home/andreas/alfresco-community/alf_data/keystore in alfresco-global.properties Für das Testsystem habe ich die Anpassungen durchgeführt, "alfresco-global.properties" musste nicht angepasst werden, da "dir.keystore" bereits gesetzt war. Anschließend kann Alfresco wieder gestartet werden. Test auf "https://ip-adresse:8443/share" ok, solr hat ein neues Dokument sofort indiziert. Im Firefox kommt es zu Problemen mit dem SSL-Zertifikat, weil der Aussteller unbekannt ist. Abhilfe schafft das Zertifikat "browser.p12", das ebenfalls generiert wurde und im keystore liegt. Import in "Meine Zertifikate", das Passwort ist "alfresco". ===== 4. Neue Alfresco Version auf das Produktivsystem übertragen ===== ==== 4.1. Alte Alfresco Version sichern ==== Nun ist es an der Zeit, vom Produktivsystem eine Sicherung zu erzeugen. Üblicher Weg, Alfresco stoppen und per rsync das gesamte Verzeichnis "~/alfresco-community" auf eine externe Festplatte kopieren. ==== 4.2. Alte Alfresco Version umbenennen und Neue Version kopieren ==== Auf dem Produktivsystem wird nun der Pfad "~/alfresco-community" in "~/alfresco-alt" umbenannt. Anschließend wird das Testsystem "~/alfresco-community" per rsync auf das Produktivsystem kopiert. ==== 4.3. Alfresco AddOn Simple-OCR-Action bereitstellen ==== Für die OCR Funktionalität in dem Ordner "Post" wird ein Plugin benötigt. [[https://addons.alfresco.com/addons/alfresco-simple-ocr-action|Simple OCR Action]] in der Version 1.1.1 war bis zum 15.09.2017 im Einsatz. Die aktuelle Version ist [[https://github.com/keensoft/alfresco-simple-ocr/releases|2.3.1]]. Ggf. muss ein neues Plugin besorgt werden, falls die Alfresco Version sich ändert. Die Site [[https://github.com/keensoft/alfresco-simple-ocr|Keensoft Simple OCR]] enthält auch Informationen zum Ersteinsatz. Bis 15.09.2017: * Das Plugin {{ :projects:simple-ocr-repo.amp |simple-ocr-repo.amp}} wird aus ''~/alfresco-alt/amps'' wird in das Verzeichnis ''~/alfresco-community/amps'' kopiert. \\ Mit dem Kommando ''/bin/apply_amps.sh'' werden alle Plugins aktiviert. Ab 15.09.2017: * Das Plugin {{ :projects:simple-ocr-repo-2.3.1.jar |simple-ocr-repo-2.3.1.jar}} wird aus ''~/alfresco-alt/module/platform'' in das Verzeichnis ''~/alfresco-community/module/platform'' kopiert. * Das Plugin {{ :projects:simple-ocr-share-2.3.1.jar |simple-ocr-share-2.3.1.jar}} wird aus ''~/alfresco-alt/module/share'' in das Verzeichnis ''~/alfresco-community/module/share'' kopiert. \\ Alle .jar-Dateien aus diesem Verzeichnis werden beim Start von Alfresco als Module identifiziert und geladen. In der Datei ''~/alfresco-alt/tomcat/shared/classes/alfresco-global.properties'' sind die notwendigen Ergänzungen enthalten und stehen nach dem Kopieren in das aktuelle Alfresco (siehe 5.) zur Verfügung. ===== 5. Neue Alfresco Version testen ===== Zunächst wird die Datei "~/alfresco-alt/tomcat/shared/classes/alfresco-global.properties" nach "~/alfresco-community/tomcat/shared/classes/alfresco-global.properties" kopiert. Danach wird Alfresco wieder gestartet. Die neue Alfresco Version kann nun mit "http://hse.koecher.it" aufgerufen und getestet werden. Meine {{ :manuals:ueberblick:alfresco-global.properties | alfresco-global.properties}} mit dem Stand 28.02.2018. ===== 6. Daten übernehmen und erneut testen ===== Alfresco wird nun wieder gestoppt. Anschließend wird das Verzeichnis "~/alfresco-community/alf_data" gelöscht und dann per mv aus "~/alfresco-alt" übernommen. So wird kein zusätzlicher Speicherplatz für das Repository benötigt. Das neue Repository ist noch auf dem Testsystem verfügbar und das unveränderte alte Repository gibt es auf der Sicherungsplatte. Anschließend müssen keystore und truststore auf dem Produtivsystem wie in Schritt 3 erneut nach solr4 kopiert werden, da der keystore in "alf_data" nun wieder den alten Zustand des Produktivsystem hat. Dann kann Alfresco wieder gestartet werden und Alles sollte funktionieren. ===== 7. Housekeeping wieder einrichten ===== Alfresco erzeugt einige log-Dateien und diese werden nicht von alleine bereinigt. Daher habe ich auf meiner Installation das Skript "clean_logs.sh" erzeugt und lasse es per crontab laufen: #!/bin/bash # Crontab for your Alfresco user (owner of java process) # 0 15 * * 1 /home/andreas/alfresco-community/bin/clean_logs.sh ALF_HOME=/home/andreas/alfresco-community LOGS_TOM=$ALF_HOME/tomcat/logs LOGS_DAYS=30 find ${ALF_HOME}/* -mtime +${LOGS_DAYS} -name \*.log\* -delete 2>/dev/null find ${LOGS_TOM}/* -mtime +${LOGS_DAYS} -name \*.log\* -delete 2>/dev/null find ${LOGS_TOM}/* -mtime +${LOGS_DAYS} -name \*access_log\* -delete 2>/dev/null Nach einem Upgrade muss das Skript von "~/alfresco-alt/bin" nach "~/alfresco-community/bin" kopiert werden. Für die log-Dateien "catalina.out" und "postgresql.log" habe ich Einträge in ''/etc/logrotate.d'' erstellt. andreas@lion:/etc/logrotate.d$ cat alf_catalina /home/andreas/alfresco-community/tomcat/logs/catalina.out { copytruncate daily rotate 10 missingok dateext size 50M } andreas@lion:/etc/logrotate.d$ cat alf_postgres /home/andreas/alfresco-community/postgresql/*.log { weekly rotate 10 copytruncate delaycompress compress notifempty missingok } Diese Einträge funktionieren auch nach einem Upgrade wieder, sofern sich nichts an der grundsätzlichen Struktur und Benennung von Alfresco geändert hat.