Dieses Howto beschreibt meine Schritte um eine Alfresco 5.1 Installation nach Alfresco 5.2 (Alfresco Community Edition 201612 GA) zu erhöhen.
Aktuelle Alfresco Installation
Mein Alfresco-System wird nicht im produktiven Umfeld sondern lediglich privat genutzt. Die Anforderungen an das System sind entsprechend niedgrig (keine Skalierung, geringe Performance).
Alfresco | |
---|---|
2 Server | 1 VM-Server für die Alfresco Installation, DB und Index (45 GB Festplatte) 1 VM-Server für Daten (350 GB Festplatte) |
Alfresco Home | /opt/alfresco-community |
Installation | Default installations-Routine |
Postgres-SQL | Ja, Installiert über die normale Installations-Routine von Alfresco |
Index | SOLR4 |
Alfresco Service | Ja. Servicename „alfresco“, Installiert über die normale Installations-Routiene von Alfresco |
alf_data | Das alf_data Verzeichnis befindet sich ausgelagert auf einem NFS-Server (VM für Daten und Index). Das alf_data Verzeichnis wird dann auf dem Alfresco-Server nach /opt/alfresco/alf_data gemounted. |
Ugrade Prozedur | Die Upgrade Prozedur richtet sich grundsätzlich nach der Alfresco-Doku: Link |
Neue VM erstellen
Bei einem Alfresco-Update (welches ja nicht so häufig vorkommt) erstelle ich meist eine neue VM mit aktuellstem Ubuntu-Betriebssystem (LTS):
- Neue VM erstellen (ESXi 5.5, VM mit Ubuntu-Linux, 4 CPUs, 8GB RAM)
- Alfresco benötigt einige Libs als Voraussetzung. Die Installationsroutine meckert, wenn diese nicht vorhanden sind (siehe hier).
Auf Ubuntu folgendes ausführen:sudo apt-get install libice6 libsm6 libxt6 libxrender1 libxext6 libfontconfig1 libcups2 libglu1-mesa libcairo2 libegl1-mesa libxinerama1
Achtung: Die Installationsroutine zeigt nach der Installation aller notwendigen Libs immer noch an, dass diese Fehlen (Stand 3.1.2017, Ubuntu 16.04). Das scheint aber ein Bug der Installationsroutine von Alfresco zu sein.
- Alfresco auf der neuen VM installieren.
- Für die Installation verwende ich die default Installations-Routine von Alfresco.
- Die Ports Ändere ich auf 80 bzw. 443.
- Den Service installiere ich auch mit der Alfresco Installations-Routine.
- Memory anpassen: Link
- Max Open Files anpassen: Link
- Anschlissend überprüfen ob die neue Installation sauber funktioniert (z.B. LibreOffice).
Konfigurationen/Customizing der neuen Installation anwenden
Ich habe auf meinem Alfresco einige „customs“ eingebaut:
Custom Datalists
Custom Web-Extensions
- Zwei eigene Listen (Inventar und Bibliothek). Hier zeige ich nur die Bibliotheksliste. Das selbe auch für Inventar machen.
- Die neuen Datalists registrieren
cp /opt/alfresco-alt//tomcat/shared/classes/alfresco/extension/customDatalist-model-context.xml /opt/alfresco-neu//tomcat/shared/classes/alfresco/extension/customDatalist-model-context.xml
Datalist-Model erstellen/kopieren
cp /opt/alfresco-alt/tomcat/shared/classes/alfresco/extension/bibliothekDatalistModel.xml /opt/alfresco-neu/tomcat/shared/classes/alfresco/extension/bibliothekDatalistModel.xml
Das web-extensions File erweitern mit den Erweiterungen aus der alten Instanz
/opt/alfresco-community/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml
- Download Buttons entfernen: Link
- Header-Icons ausblenden, welche nicht gebraucht werden: Link
- Download-Button nur wenn Schreibrecht vorhanden: Link
Alte Alfresco-Instanz backupen
- Alte Alfresco-Instanz stoppen
- Ganze DB backupen
- Postgres starten
sudo /opt/alfresco-community/alfresco.sh start postgresql
- Die gesamte Alfresco-Datenbank dumpen
cd /opt/alfresco-community/postgresql/bin/
./pg_dump -h localhost -U alfresco alfresco > /tmp/alfrescodbdump
- Postgres stoppen
sudo /opt/alfresco-4.2.d/alfresco.sh stop postgresql
- Postgres starten
- alf_data Verzeichnis der alten Alfresco-Instanz backupen. => Darauf achten, dass der Alfresco-Service nicht läuft!
Ich kopiere dazu einfach das gesamte alte alf_data Verzeichnis nach alf_data_alt.
Daten auf neuer Alfresco-DB Instanz restoren
- Die neue Alfresco-Instanz stoppen.
- Nun die Postgresql-Datenbank der NEUEN Installation starten:
sudo /opt/alfresco-community/alfresco.sh start postgresql
- Die Datenbank „alfresco“ der neuen Installation löschen:
cd /opt/alfresco-community/postgresql/bin/
./dropdb -U alfresco alfresco -h localhost -i Database "alfresco" will be permanently removed. Are you sure? (y/n) y Password:
- Die gelöschte Datenbank wieder erstellen
$ sudo ./createdb -U postgres -T template0 alfresco -h localhost Password:
- Nun den Alfresco-Dump der alten Instanz auf der neuen einspielen:
$ sudo ./psql -U alfresco alfresco -h localhost < /tmp/alfrescodbdump Password: (...) ALTER TABLE ALTER TABLE REVOKE REVOKE GRANT GRANT $ exit
- Die Postgres-DB der neuen Installation wieder stoppen.
sudo /opt/alfresco-community/alfresco.sh stop postgresql
Content-Store und Idexe restoren
Content-Store und Index habe ich auf einem NFS-Server.
- Wichtig, nicht das postgres-Datenverzeichnis der neuen Installation löschen!!!!!! Das ganze alf_data Verzeichnis der neuen Alfresco-Instanz nach ~/alf_data_backup verschieben. Dies, weil sich auch das postgres-Datenverzeichnis hier befindet. Die DB mit den Daten wird wegkopiert.
sudo mv /opt/alfresco/alf_data ~/alf_data
- Jetzt den mount-Punkt „alf_data“ des NFS-Servers auf die neue Alfresco-Instanz mounten.
- Nun die postgres Daten wieder zurück kopieren
sudo rm -r sudo cp ~/alf_data/postgresql/* /opt/alfresco/alf_data/postgresql/
- Reindexierung von SOLR4:
Ich initialisiere Solr4 nach jeder Installation neu gem. Alfresco-Dokumentation: Link