Upgrade von UCS 2.4 mit Kolab

Hier mal meine Notizen zum Upgrade von Kolab 4 UCS 2.4 auf 3.x. Ich übernehme keine Gewährleistung für Richtigkeit und Vollständigkeit, aber ich denke, das sollte die meisten Fragen klären. Bitte entschuldigt, dass es so lange gedauert hat.

Paket Upgrade
Generell empfehlen wir, einen neuen Server aufzusetzen und nach der Installation die Daten vom alten auf den neuen zu übertragen, erst recht, wenn man die Kolab-Pakete von Univention mit Horde aktualisiert. Bei den Horde PEAR Paketen gibt es zu viele Abhängigkeiten (auch untereinander) als dass man die sauber deinstallieren könnte.

Wer trotzdem direkt aktualisieren will, sollte
[ol]
[li]UCS 2.4 auf das aktuellste Patchlevel aktualisieren, also zumindest auf 2.4-4[/li]
[li]Kolab 4 UCS deinstallieren:

# apt-get remove univention-kolab2 kolabsys-kolab2

[li]aufräumen:

# apt autoremove

[li]das System auf UCS 3.x aktualisieren. Details dazu findet man in der Dokumentation von Univention, besonders in den UCS 3.0 Release Notes.[/li]
[li]Kolab aus dem App Center oder gemäß der Anleitung auf der Kolab Systems Webseite installieren:

univention-install kolabsys-kolab2

[li]sichstellen, dass alle join-scripts ausgeführt wurden:

univention-run-join-scripts

Daten kopieren
[ol]
[li]Postfix auf dem alten Server beenden, damit keine neuen Mails reinkommen:

/etc/init.d/postfix stop

[li]Cyus auf dem alten und neuen Server beenden.
Alter Server:

/etc/init.d/cyrus2.2 stopNeuer Server:

/etc/init.d/cyrus-imapd stop

[li]Daten kopieren:

export oldserver=<fqdn of the old server> rsync -avzP $oldserver:/var/lib/cyrus/mailboxes.db /var/lib/cyrus/ rsync -avzP $oldserver:/var/lib/cyrus/annotations.db /var/lib/cyrus/ rsync -avzP $oldserver:/var/lib/cyrus/domain/ /var/lib/cyrus/domain/ rsync -avzP $oldserver:/var/spool/cyrus/sieve/ /var/spool/cyrus/sieve/ rsync -avzP $oldserver:/var/spool/cyrus/mail/ /var/spool/cyrus/mail/ --log-file=rsync.logErst im letzten Schritt werden die ganzen Mails kopiert. Da das u. U. viel ist, bitte eine Logdatei nutzen.[/li]
[li]Cyrus auf dem neuen Server starten:

rm /var/lib/cyrus/db/* /etc/init.d/cyrus-imapd start[/li][/ol]Das kann eine Weile dauern, weil die Datenbanken im neuen Format erstellt werden.

LDAP
Eine komplette Liste der Änderungen befindet sich im Univention Bugzilla.

Benutzer
Benutzeraccounts haben sich zwischen UCS 2.4 und 3.0 ziemlich geändert, aber die meisten Änderungen betreffen den Kolab Server nicht. Das Upgrade um UCS kümmert sich um alles, nur das Attribut kolabHomeServer muss in univentionMailHomeServer geändert werden.

Zum Testen einem einzelnen Nutzer das neue Attribut geben:

univention-directory-manager users/user modify --dn "<dn des Nutzers>" --set "mailHomeServer=<hostename>" ; done muss man natürlich setzen und muss selbstverständlich der Name des neuen Kolab-Servers sein. Nach Anmeldung im Kolab Webclient sollten dort jetzt alle Daten zu sehen sein.

Die restlichen Nutzer umstellen:

for dn in $(univention-ldapsearch objectClass=kolabInetOrgPerson | grep dn: | sed 's/dn: //') ; \ do univention-directory-manager users/user modify --dn "$dn" --set "mailHomeServer=<hostename>" ; doneMan kann auch gleich noch mittels –unset “kolabHomeServer” das alte Attribut löschen.

Verteilerlisten
Verteilerlisten haben nicht mehr die Objektklasse univentionKolabGroup sondern univentionMailList und die neue generische Klasse univentionObject. Die einzelnen Mitglieder der Listen sind jetzt univentionMailListMember statt univentionKolabMember.

Die Verteilerlisten konvertieren:

univention-ldapsearch objectClass=univentionKolabGroup > mailing-lists.ldif sed -i ' s/univentionKolabGroup/univentionMailList\nobjectClass: univentionObject/ s/univentionKolabMember/univentionMailListMember/ ' mailing-lists.ldif ldapadd -x -D "cn=admin,$(ucr get ldap/base)" -w $(cat /etc/ldap.secret) -f mailing-lists.ldif

Gemeinsame Ordner
Gemeinsame Ordner haben nicht mehr die Objektklassen univentionKolabSharedFolder und kolabSharedFolder sondern univentionMailSharedFolder und die neue generische Klasse univentionObject. Weitere Änderungen an Attributen:
[ul]
[li]acl ist jetzt univentionMailACL[/li]
[li]cyrus-userquota ist jetzt univentionMailUserQuota[/li]
[li]univentionKolabSharedFolderDeliveryAddress ist jetzt univentionMailSharedFolderDeliveryAddress[/li]
[li]univentionKolabUserNamespace ist jetzt univentionMailUserNamespace[/li][/ul]

Konvertieren eines gemeinsamen Ordners:

univention-ldapsearch objectClass=univentionKolabSharedFolder > shared-folders.ldif sed -i ' s/univentionKolabSharedFolder/univentionMailSharedFolder/ s/kolabSharedFolder/univentionObject/ s/kolabHomeServer/univentionMailHomeServer/ s/acl/univentionMailACL/ s/cyrus-userquota/univentionMailUserQuota/ s/univentionKolabSharedFolderDeliveryAddress/univentionMailSharedFolderDeliveryAddress/ s/univentionKolabUserNamespace/univentionMailUserNamespace/ ' shared-folders.ldif ldapadd -x -D "cn=admin,$(ucr get ldap/base)" -w $(cat /etc/ldap.secret) -f shared-folders.ldif

Sieve
Das Format der Sieve-Skripte hat sich geändert und sollte aktiualisiert werden:

univention-install kolab-cli for mail in $(univention-ldapsearch objectClass=kolabInetOrgPerson | grep mailPrimaryAddress: | sed 's/mailPrimaryAddress: //') ; do \ kolab sieve refresh $mail ; done

So, das war’s auch schon. Ich hoffe, das keine Fragen mehr offen sind. Falls doch, einfach fragen, aber bitte erwartet nicht sofort eine Antwort, da ich ab morgen für eine Woche im Urlaub bin.

edit: Typo gefixt, danke SirTux!