Kopano-Mailmigration für LD2.0
Anleitung nur für LogoDIDACT 2.0
Die nachfolgenden Schritte beschreiben, wie Daten aus Kopano exportiert und in die IServ Schulplattform importiert werden können. Dies betrifft konkret:
- Kalender
Voraussetzungen
- Zur Migrationsdurchführung müssen zusätzliche Tools auf dem LogoDIDACT installiert werden. Da sich die LD-Instanz bereits im End of Life Stadium befinden könnte, werden die benötigten Ubuntu-Pakete als tar.gz-Archiv zum Download angeboten.
- Vor dem Export muss eine externe Festplatte oder ein sonstiger Speicherort am ldhost angeschlossen und eingehängt werden. Aufgrund der einfachen Handhabung geht die Dokumentation im Folgenden davon aus, dass eine externe USB-Festplatte mit einem ext4 Linux-Dateisystem und dem Label "USB-Backup" verwendet wird. Eine Sicherung auf ein anderes Medium ist ebenfalls möglich.
- Die Mailmigration wird in zwei Teilen gemacht: 2-3 Tage vor dem Umstellungstermin wird der erstmalige Export angestoßen. Am Tag der Umstellung wird der selbe Export erneut gestartet, hier erfolgt ein finaler Abgleich.
LogoDIDACT Postfach-Export vorbereiten
Zur Durchführung des Postfach-Datenexports werden verschiedene Tools und ergänzende Ubuntu-Pakete im LXC-Container kopano-g1 installiert. Auch im Konfigurationssystem puppeteer sind Einstellungen per YAML-Konfigurationsdatei festzulegen. Damit wird einleitend begonnen, eine SSH-Verbindung zum LogoDIDACT Server hergestellt und die nachfolgenden Konfigurationabschnitte im Puppeteer hinzugefügt.
| ldhost | |
|---|---|
- Vorhandene Datei
/etc/logodidact/hiera/custom.d/kopano-g1.yamlmit einem Texteditor bearbeiten - Zusätzliche Einstellungen zur YAML-Datei hinzufügen und die sonstigen, bereits vorhandenen Einstellungen unberührt lassen.
Hier wird eine Anpassung der OpenLDAP Attributsfelder vorgenommen, damit in den Kopano-Konten neben der Mailadresse auch der normale Linux-Accountname sowie die Unique-ID als Benutzereigenschaften zur Verfügung stehen. Außerdem wird ein zusätzlicher IMAP-Dienst am Server eingerichtet, der User-Postfächer an der Shell (ohne Angabe der einzelnen Benutzer-Kennwörter) exportierbar macht. Die obigen Firewall-Einstellungen begrenzen die Erreichbarkeit auf die lokale Zone (loopback Device).
Die Änderungen wie üblich unterhalb des Verzeichnis /etc/logodidact/ ins GIT speichern.
| puppeteer | |
|---|---|
Als Nächstes müssen zusätzliche Ubuntu-Pakete für den kopano-g1 LXC-Container heruntergeladen werden, um den Export zu ermöglichen. Diese werden als tar-Archiv zur Verfügung gestellt.
Es folgt eine Anpassung im Puppet-Modul ld_kopano, um das Zurücksetzen der aktivierten apache2-sites im LXC-Container kopano-g1 zu verhindern.
Zurück im ldhost muss der LXC-Container kopano-g1 kurzzeitig angehalten werden. Dies dient dem Zweck, die Backup-Festplatte einzuhängen und im Namespace des LXCs verfügbar zu machen.
| ldhost | |
|---|---|
ACHTUNG
Das Label oder der Pfad zur Backup-Partition muss auf Ihre Gegebenheiten angepasst werden.
Anschließend in den LXC-Container kopano-g1 wechseln und die Änderungen per prun anwenden.
| ldhost | |
|---|---|
Nun erfolgt die Installation der zusätzlich benötigten Tools, die für den Export verwendet werden:
Info
Um den manuellen Aufwand zu reduzieren, steht hierzu ein Shell-Skript zur Verfügung, welches im Container heruntergeladen werden kann.
| kopano-g1 | |
|---|---|
Innerhalb des Skriptes sind nun verschiedene Optionen wählbar. Diese können entweder einzeln oder gesammelt mit dem Parameter --all aufgerufen werden. Das Skript läuft diese Schritte automatisch ab, einzelne Schritte können jedoch über den genannten Weg wiederholt werden.

Nun wird die Installation angestoßen, bitte die Konsolenausgabe beachten.
| kopano-g1 | |
|---|---|
Neben der Installation von Paketen finden durch das Setup-Skript einige weitere Schritte automatisch statt. Es werden auch zusätzliche Migrationsskripte ins Verzeichnis /opt/export-tools/ entpackt, um den Vorgang zu vereinfachen. Ein gewisser Komplexitätsgrad bleibt beim Übertragen von E-Mail-Postfächern dennoch übrig, es muss in jedem Fall sehr sorgfältig gearbeitet werden. Durch das Entpacken weiterer Tools nach /opt/export-tools/ ist es möglich, Aktionen darin durch Feedback zu verbessern.
Der letzte Schritt 6 weist nach der Ausführung darauf hin, dass YAML-Einstellungen im puppeteer festgelegt werden müssen. Dies ist bereits geschehen, wenn man dieser Anleitung gefolgt ist. Daher muss lediglich noch der hinzugefügte systemd-Service kopano-gateway-bypassauth.service gestartet werden, um die Ergänzungen im Mail-Container abzuschließen.
| kopano-g1 | |
|---|---|
Sofern der Dienst nun als aktiv gekennzeichnet wird, sind die Vorbereitungen abgeschlossen und der eigentliche Export kann gestartet werden.
1. Ausführen des ersten Exportes
Info
Zur Durchführung des IMAP-Exportes wird ein weiteres, eigenständiges Shell-Skript task2_export-kopano-stores.sh zur Verfügung gestellt, um einen Teil der Aufgaben zu automatisieren. Es empfiehlt sich, diese in einer Screen-Sitzung auszuführen, um ungewollte Abbrüche zu verhindern.
Dies soll den Export vereinfachen, es ist davon auszugehen, dass der Postfach-Export viele Stunden zur Abarbeitung benötigt und das Shell-Skript soll hierbei unterstützen, damit diese Aktionen im Hintergrund, ohne weitere manuelle Eingriffe, stattfinden können.
| kopano-g1 | |
|---|---|
Analog zum Setup Skript aus dem vorherigen Schritt, liefert auch das Export-Skript verschiedene Parameter mit, um einzelne Schritt gezielt auszuführen:

1.1 Übersicht der einzelnen Schalter
--step1
Erstellt bzw. erneuert ein Komplettbackup der gesamten Kopano-Installation in einem proprietären Kopano-Datenbankformat (MAPI-Objekte im Binärformat). Diese Daten sind ausschließlich als Fallback gedacht und werden nicht für die Migration nach IServ verwendet. Das Backup wird in einem Berkeley-DB-Format gespeichert und benötigt entsprechenden Speicherplatz.
--step2
Erstellt eine Kopano-Benutzerliste als kopano.userlist.csv (mit Kopano-Name, Linux-Account, IServ-Account). Grundlage für alle weiteren Exporte und das spätere Mapping nach IServ.
--step3
Erzeugt auf Basis der kopano.userlist.csv Konfigurationsdateien für die Export-Tools (z. B. offlineimap/vdirsyncer). Muss erneut ausgeführt werden, wenn sich die kopano.userlist.csv geändert hat.
--step4 (Kalender)
Exportiert bzw. aktualisiert die Kalenderdaten (ICS-Dateien) der Benutzer auf der Backup-Festplatte.
--step5 (Kontakte)
Exportiert bzw. aktualisiert die Kontaktdaten (VCF-Dateien) der Benutzer auf der Backup-Festplatte.
--step6
Erzeugt oder aktualisiert weitere Konfigurationsdateien für die verwendeten Tools (Import/Export), ebenfalls auf Basis der aktuellen kopano.userlist.csv. Nach Änderungen an der CSV erneut ausführen.
--step7
Exportiert bzw. aktualisiert die E-Mail-Nachrichten (Maildir-Struktur) der Benutzer auf der Backup-Festplatte.
Besonderer Hinweis!
In Kombination mit --use-imapsync können Mails direkt von Kopano zu IServ synchronisiert werden (Echtzeit, ohne Zwischenspeicher). Beide Systeme müssen parallel laufen und sich per Netzwerk erreichen!
--step8
Erstellt zusätzliche Metadaten, z. B. die Datei kopano.userlist-extra.yaml mit Alias-Adressen und Verteilerlisten („Distribution Lists“). Hilfreich, um Aliasse und Verteiler später in IServ manuell nachzubilden.
1.2 Funktionsweise von task2_export-kopano-stores.sh
Das Shell-Skript verwendet für den E-Mail-Nachrichtenexport das IMAP-Tool offlineimap3. Es ist so aufgebaut, dass es mehrfach aufgerufen werden kann, um nachträglich neue Nachrichten (differenziell) zu synchronisieren.
Bei sehr großen E-Mail-Postfächern kann der Export entsprechende Zeit in Anspruch nehmen. offlineimap3 ermöglicht zwar das parallele Exportieren mehrerer Postfächer (Threads), das Exportieren eines einzelnen großen Postfachs kann trotzdem mehrere Stunden in Anspruch nehmen.
Daher ist es empfehlenswert, den Export der IMAP-Postfächer bereits einige Tage vor dem vereinbarten Migrationstermin zu starten und zum eigentlichen Migrationstermin nur noch die zwischenzeitlich neu eingegangenen Nachrichten nachzusynchronisieren.
Dem Hilfetext des Skripts ist außerdem zu entnehmen, dass vor dem Nachrichtenexport weitere Schritte ausgeführt werden, z. B.:
- Export von Kalenderobjekten
- Export von Kontaktobjekten
Diese Exporte erfolgen über das Tool kopano-rfcdump.py in den Schritten 4 und 5. Sie sind bewusst vorgezogen, da sie im Vergleich zum Nachrichtenexport deutlich schneller ablaufen.
1.3 Konfigurationsdatei für task2_export-kopano-stores.sh
Das Skript task2_export-kopano-stores.sh benötigt zwingend eine individuelle Konfigurationsdatei. Darin werden unter anderem folgende Angaben hinterlegt:
- Pfade für den Datenexport auf die bereits eingehängte Backup-Festplatte.
- ein LogoDIDACT-Admin (für den Export),
- ein IServ-Admin (für den späteren Import).
Wichtig
Diese Admin-Konten sind keine generischen Accounts; sie müssen über die nötigen Rechte verfügen, um auf alle Postfächer zugreifen zu können.
Die Konfigurationsdatei sollte im gleichen Verzeichnis liegen wie das Skript, also im Ordner /root/migration/ im LXC-Container kopano-g1.
Der Dateiname sollte kopano_backup.config lauten, wie in der dazugehörigen Abbildung gezeigt.
Solange diese Konfigurationsdatei nicht existiert, bricht das Skript beim Start mit einem Fehler ab und gibt Beispielzeilen für eine Konfiguration auf der Konsole aus. Zunächst eine Beispiel-Konfigurationsdatei erzeugen durch Aufruf des folgenden Kommandos:
| kopano-g1 | |
|---|---|
Die erzeugte Konfigurationsdatei kopano_backup.config muss nun mit einem Texteditor bearbeitet, mit sinnvollen Werten ergänzt und anschließend wieder abspeichert werden.
Im unteren Bereich der Konfigurationsdatei werden die Zugangsdaten für den LogoDIDACT-Admin und den IServ-Admin eingetragen.
Die konkrete Vergabe der notwendigen Rechte für den IServ-Admin wird später in der Anleitung beschrieben. Für den Export der Postfachdaten unter LogoDIDACT sind jedoch bereits jetzt die korrekten Rechte des LogoDIDACT-Admins entscheidend.

1.4 Kopano-Adminrechte des LogoDIDACT-Admins prüfen und setzen
Ob der LogoDIDACT-Admin die benötigten Kopano-Adminrechte besitzt, kann im LXC-Container mit dem Kommandozeilen-Tool kopano-admin geprüft werden.
(meistens 'admin')
In der Ausgabe muss ersichtlich sein, dass der betreffende Benutzer Kopano-Administrator ist:

1.5 Nachträglichen Kopano-Admin einrichten
Wichtig
Dieser Schritt muss lediglich dann erfolgen, wenn keine Administratorberechtigungen gelistet sind.
| logosrv | |
|---|---|
| kopano-g1 | |
|---|---|
1.6 Erster vollständiger Export aller Kopano-Postfächer
Sind Konfigurationsdatei und Rechte korrekt eingerichtet, kann der erste vollständige Export gestartet werden.
Um alle Kopano-Benutzer zu exportieren, wird das Skript mit dem Schalter --all aufgerufen.
Gefährlich
Um ungewollte Abbrüche zu verhindern, sollte das Skript in einer Screen-Sitzung gestartet werden!
1.7 Skript ausführen
| kopano-g1 | |
|---|---|
Nach erfolgreichem Durchlauf befinden sich die exportierten Daten im Verzeichnis /backup/ld-kopano-stores/ (wie in der Konfiguration angegeben).
Die Exportstruktur ist typischerweise:
mailboxes/– E-Mail-Nachrichten im Maildir-Formatcalendars/– Kalenderdaten im ICS-Format (*.ics)contacts/– Kontakte im vCard-Format (*.vcf)
Zur Zuordnung der Inhalte sind jeweils Unterordner pro Kopano-Benutzer vorhanden, und zwar sowohl unter mailboxes/ als auch unter calendars/ und contacts/

Im Rahmen von Schritt --step8 legt das Skript zusätzlich die Datei kopano.userlist-extra.yaml auf der Backup-Festplatte ab.
Diese Datei enthält:
-
Informationen zu E-Mail-Aliasadressen,
-
Informationen zu Kopano-Verteilergruppen (Distribution Lists).
Diese Informationen sind hilfreich, zum Beispiel wenn:
-
Benutzer in IServ wieder mit Mail-Aliasadressen ausgestattet werden sollen,
-
Verteilerlisten in IServ manuell neu angelegt werden müssen.
Ein Automatismus für die Rekonstruktion von Verteilern in IServ existiert nicht, die Neuanlage kann aber über den entsprechenden Menüpunkt erfolgen (sofern das Modul "Verteilerlisten" installiert ist).
Zur Veranschaulichung ist der Export aller Kopano-Postfächer in einem Video demonstriert.
Hinweis!
In produktiv genutzten LogoDIDACT Installationen ist - anders als im Demo-Video - davon auszugehen, dass jeder Schritt sehr viel mehr Zeit in Anspruch nehmen wird. Speziell der Schritt 7 "IMAP-Nachrichtenexport" unter Umständen beim ersten Durchlauf auch mehr als 1 Tag, falls extrem große Postfächer existieren.
2. Weitere Exportdurchläufe (differentielle Nachsynchronisierung)
Wenn zwischen dem ersten Export und dem finalen Migrationstermin noch Zeit liegt, kann das Skript später erneut ausgeführt werden, um geänderte Daten nachzuziehen. Dabei können einzelne Schritte ausgelassen werden, die bereits erledigt wurden.
Typischer Ablauf für einen zweiten oder weiteren Export:
| ldhost | |
|---|---|
Hinweise
Statt einen Komplettablauf mit --all zu wiederholen, können nun gezielt einzelne Schritte des Skripts genutzt werden (z. B. --step4 für Kalender, --step5 für Kontakte, --step7 für E-Mails).
Die Neuerstellung der Kopano-Benutzerliste (Schritt --step2) ist nur notwendig, wenn seit dem ersten Export neue Benutzer auf dem LD-Server angelegt wurden. Andernfalls kann auf die bestehende kopano.userlist.csv zurückgegriffen werden.
Diese CSV-Datei kann auch im Texteditor bearbeitet werden, um Konten zu entfernen, deren Daten nicht nach IServ migriert werden sollen.

3. Abschließende Arbeiten unter LogoDIDACT zum Migrationszeitpunkt
Sobald alle Kopano-Exportdaten auf dem gewünschten Stand sind und die Umschaltung des Mailsystems bevorsteht, werden folgende Schritte durchgeführt.
Achtung
Ab diesem Zeitpunkt dürfen die Export-Tools nicht mehr verwendet werden!
3.1 Abruf von neuen Nachrichten per POP3 am Server deaktivieren
Das Tool getmail wird samt zugehörigen Konfigurationsdateien aus dem LXC-Container kopano-g1 entfernt. So ist sichergestellt, dass neuen Nachrichten nicht mehr vom CatchAll-Postfach abgerufen werden.
| ldhost | |
|---|---|
| ldhost | |
|---|---|
| kopano-g1 | |
|---|---|
3.2 Exportierte Daten an IServ anpassen
Dies läuft über ein weiteres Skript, welches in Python umgesetzt ist.
| kopano-g1 | |
|---|---|
Das Skript übernimmt unter anderem:
- Umwandlung von IMAP-UTF7-Ordnernamen nach UTF-8 (wichtig für Umlaute und Sonderzeichen),
- Umbenennung deutscher Standardordner in englische Standardordner (passend zu IServ),
- weitere Umbenennungen, z. B. Benutzername/calendar in Benutzername/home.
Vor jeder Umbenennung werden die geplanten Aktionen angezeigt und müssen bestätigt werden. Die Änderungen werden in Logdateien unterhalb von /backup/ld-kopano-stores/logs/ protokolliert.
Nach Abschluss werden zusätzlich Kalender-Ordnernamen normalisiert (--calendars) und vorgeschlagene Kontakte mit einem weiteren Aufruf von migrate_mailboxes.py bei Bedarf gelöscht (--delete-suggested-contacts).
3.3 Ausführung
| ldhost | |
|---|---|
3.4 Backup-Festplatte trennen
| ldhost | |
|---|---|
Die Backup-Festplatte vom Mountpunkt /var/backups/lxc/kopano-g1 aushängen.
| ldhost | |
|---|---|
Danach den Kopano-LXC wieder starten oder den LD-Server herunterfahren – abhängig vom geplanten Migrationsszenario.
4. DNS-Anpassungen für den Umstieg auf IServ
Für einen reibungslosen Umstieg müssen:
- alle bisherigen Mailadressen in IServ wieder so angelegt werden, wie sie zuvor existiert haben
- passende Zielpostfächer für den Import der Kopano-Daten bereitstehen.
Im DNS der verwendeten Maildomäne müssen insbesondere folgende Einträge angepasst werden:
- MX-Record (Zustellung eingehender E-Mails),
- TXT-SPF-Record (Autorisierung der IServ-Mailrelay-Server).
4.1 Beispiel MX-Anpassung
Vorher:
meine-schul-maildomain.de MX 10 pmg.schulkennung.logoip.de
Nachher:
meine-schul-maildomain.de MX 10 iserv-hostname.xyz
meine-schul-maildomain.de MX 50 offline.iserv.eu
Wichtig
iserv-hostname.xyz muss durch den tatsächlichen IServ-Hostname der Schule ersetzt werden.
Eventuell vorhandene zusätzliche MX-Records sollten entfernt werden, sofern sie nicht mehr benötigt werden.
4.2 Beispiel SPF-Anpassung
Vorher:
meine-schul-maildomain.de TXT "v=spf1 a mx -all"
Nachher:
meine-schul-maildomain.de TXT v=spf1 a mx a:relay1.iserv.eu a:relay2.iserv.eu a:relay3.iserv.eu a:relaybs.iserv.eu ?all"
Info
Je nach TTL und DNS-Infrastruktur können die Änderungen typischerweise zwischen einer Stunde und einem Tag benötigen, bis sie weltweit wirksam sind. Die Einlieferung neuer E-Mails in die Domain ist unabhängig von den bereits migrierten Postfachdaten. Bereits importierte Nachrichten bleiben erhalten.
Weiterführende Informationen zur DNS-Konfiguration können Sie hier finden: IServ DNS Doku
5. IMAP-Import in IServ
Hinweis
Vor dem Import müssen in der IServ-Verwaltung alle Benutzerkonten angelegt sein, für die Kopano-E-Maildaten wiederhergestellt werden sollen. Ohne diese Benutzer existieren keine Zielpostfächer.
In der IServ-Dokumentation finden Sie alle Hinweise zum Importieren von Benutzern: IServ Benutzer Import
Alternativ finden Sie unter LD-User-Export (Nutzerübernahme) eine Anleitung zur Übernahme der Konten direkt aus LogoDIDACT.
5.1 IServ vorbreiten
Nun wird die Festplatte an den Server angeschlossen und im IServ gemountet - anschließend der Arbeitsordner erstellt und das offlineIMAP3-Repository geklont.
Hinweis
Der Pfad zur Partition muss ggf. angepasst werden.
5.2 Zugriff auf IServ-Postfächer einrichten
Sehr Wichtig!!!
Dieser Schritt ist besonders wichtig, da durch fehlende Admindaten die Mailzuordnung fehlerhaft sein kann!!!!
Beispiel:

An dieser Stelle wird ein definierter Admin-Nutzer als technisches Konto für den IMAP-Import eingerichtet.
Hinweis
Der Benutzer muss übereinstimmen mit dem Benutzernamen, der in offlineimap.iserv.mailboxes.importlist.config unterhalb [DEFAULT] iservAdminUsername für den Mailbox-Import festgelegt ist.
5.3 Identitätsabgleich
Im eingehängten Pfad /mnt/ld-kopano-stores/ befindet sich die Datei kopano.userlist.csv mit drei Spalten:
- Kopano-Benutzername (LogoDIDACT),
- Linux-Accountname (LogoDIDACT),
- IServ-Benutzername (Zielkonto).
Wir gehen im Weiteren davon aus das die IServ-Benutzernamen dem Schema vorname.nachname entsprechen. Bei Abweichungen (Lehrerkürzel, sehr lange Namen etc.) muss die Datei angepasst werden.

Mittels des Skriptes ld-iserv-usermapping.sh kann nun die Mapping-Datei kopano.userlist.csv verarbeitet/angepasst werden.
Wichtig
Es empfiehlt sich, den Modus --check unter Angabe der CSV-Mappingdatei /mnt/ld-kopano-stores/kopano.userlist.csv mindestens einmal auszuführen, dabei prüft das Skript ob alle IServ-Benutzernamen (aus Spalte 3) bereits angelegt sind. Sollten Benutzer fehlen, gibt das Skript einen Fehler aus und listet die Zeile des fehlenden Benutzers auf.

Zur Überprüfung der Benutzernamen also den Check-Modus aufrufen.
5.4 Beispielausgabe nach Fehlermeldung
Das nachfolgende Bild zeigt, dass der Nutzer "tte" nicht gefunden werden konnte. Es handelt sich möglicherweise um ein Lehrerkonto, welches in LogoDIDACT mittels Lehrerkürzel als Accountnamen importiert wurde und innerhalb der IServ Schulplattform unter dem Schema Vorname.Nachname angelegt wurde:

Um nun die Datenmigration zu ermöglichen, muss die Mapping-Datei bearbeitet werden um darin in der Zeile des betroffenen Benutzers (line 6) einen gültigen IServ Account in der Spalte 3 (Zielkonto) zu hinterlegen.
Dieser Vorgang wird nun wiederholt, bis --check keine Fehlermeldung mehr anzeigt, anschließend kann mittels des Parameters --patch die Korrektur überführt werden.
Hinweis
Bei Unklarheiten existiert im Backup-Pfad (/mnt/ld-kopano-stores/) eine zusätzliche YAML-Datei kopano.userlist.yaml, welche ausführliche Informationen zu den LogoDIDACT Benutzerkonten beinhaltet. Diese Datei muss nicht bearbeitet werden, sie dient ausschließlich dem Heranziehen zusätzlicher Informationen.
Sind alle Namen korrekt, wird der Modus --patch verwendet, um die Importkonfigurationen anzupassen:
Betroffene Dateien im Backupverzeichnis /mnt/ld-kopano-stores/:
- offlineimap.iserv.mailboxes.importlist.config – wird für den IMAP-Mailimport verwendet.
- vdirsyncer.iserv.calendars.importlist.config – wird für den Kalenderimport per CalDAV verwendet.
6. Import der Postfächer mittels offlineimap
Hinweis
Vor diesem Schritt muss das Mapping ohne Fehler durchgelaufen sein, damit alle Postfächer den ursprünglichen Nutzern zurückgespielt werden können!
Der Import benötigt (abhängig von der Postfachgröße) wieder einiges an Zeit, deswegen empfiehlt sich auch hier der Einsatz einer Screen-Session.
- Datei offlineimap.iserv.importlist.config im Texteditor bearbeiten
- Im oberen Abschnitt [DEFAULT] die beiden Platzhalter mit den Zugangsdaten des ISERVADMINUSER austauschen (Benutzername + Kennwort).
- In diesem Abschnitt [DEFAULT] ebenso den dritten Platzhalter ISERVHOSTNAME durch den tatsächlichen Wert ersetzen.
| IServ | |
|---|---|
- Mailbox-Import startet, parallel für die Anzahl an Postfächern wie im Parameter
maxsyncaccountsdes ConfigFile angegeben
Der Vorgang kann beliebig oft wiederholt werden, sollten beim Import vereinzelte Fehler auftreten. Mittels des Parameters -a unter Angabe eines Accountnamens, wird nur das genannte Postfach synchronisiert.
7. Abschlussarbeiten nach dem Import
Nach dem Durchlaufen des Importskriptes, ist der Import abgeschlossen - zur Kontrolle kann man die Logdatei /~/ld-kopano-mailimport/offlineimap.iserv.mailboxes.import.log sichten. Hier findet man folgende Information:
- Finished Account (username) in xx:xx (Zeitangabe in Min)
7.1 Zurücksetzen (ACL-Reset) nach dem Import
Hinweis
Nach Abschluss der Arbeiten sind die Berechtigungen wieder auf die IMAP-Ordner der Benutzer zurückzusetzen, also den Zugriff des Administrators entfernen.
| IServ | |
|---|---|
Abschließend noch die Cyrus Konfigurationsdatei zurücksetzen:
| IServ | |
|---|---|
8. Importieren der Kalenderdaten
Die nachfolgenden Schritte beschreiben den Import der Kalenderdaten in die IServ Schulplattform.
8.1 Einbinden der Backup-Festplatte und Erstellen des Arbeitsordners
Hinweis
Dieser Schritt kann übersprungen werden, wenn dieser Dokumentation chronolisch gefolgt wurde.
(Label/Pfad zur Backup-Partition ggf. anpassen)
| IServ | |
|---|---|
8.2 Temporären DAViCal-Admin festlegen
Um den Zugriff auf die Kalenderdaten der Benutzer zu erhalten, müssen einem definierten Administrator temporär die Berechtigungen zugewiesen werden. Durch die nachfolgenden Befehle werden zwei Datensätze in der DAViCal Datenbank hinzugefügt, wodurch der enstprechende Nutzer die Admin-Berechtigungen und somit Zugriff auf die übrigen User-Kalender erhält.
8.3 Identitätsabgleich
Hinweis
Dieser Abschnitt entspricht ebenfalls dem unter 5.3 beschriebenen Identitätsabgleich, mit dem Unterschied, dass hier --patch=calendars ausgeführt werden muss.
Im eingehängten Pfad /mnt/ld-kopano-stores/ befindet sich die Datei kopano.userlist.csv mit drei Spalten:
- Kopano-Benutzername (LogoDIDACT),
- Linux-Accountname (LogoDIDACT),
- IServ-Benutzername (Zielkonto).
Wir gehen im Weiteren davon aus das die IServ-Benutzernamen dem Schema vorname.nachname entsprechen. Bei Abweichungen (Lehrerkürzel, sehr lange Namen etc.) muss die Datei angepasst werden.

Mittels des Skriptes ld-iserv-usermapping.sh kann nun die Mapping-Datei kopano.userlist.csv verarbeitet/angepasst werden.
Wichtig
Es empfiehlt sich, den Modus --check unter Angabe der CSV-Mappingdatei /mnt/ld-kopano-stores/kopano.userlist.csv mindestens einmal auszuführen, dabei prüft das Skript ob alle IServ-Benutzernamen (aus Spalte 3) bereits angelegt sind. Sollten Benutzer fehlen, gibt das Skript einen Fehler aus und listet die Zeile des fehlenden Benutzers auf.

Zur Überprüfung der Benutzernamen also den Check-Modus aufrufen.
8.4 Beispielausgabe nach Fehlermeldung
Das nachfolgende Bild zeigt, dass der Nutzer "tte" nicht gefunden werden konnte. Es handelt sich möglicherweise um ein Lehrerkonto, welches in LogoDIDACT mittels Lehrerkürzel als Accountnamen importiert wurde und innerhalb der IServ Schulplattform unter dem Schema Vorname.Nachname angelegt wurde:

Um nun die Datenmigration zu ermöglichen, muss die Mapping-Datei bearbeitet werden um darin in der Zeile des betroffenen Benutzers (line 6) einen gültigen IServ Account in der Spalte 3 (Zielkonto) zu hinterlegen.
Dieser Vorgang wird nun wiederholt, bis --check keine Fehlermeldung mehr anzeigt, anschließend kann mittels des Parameters --patch=calendars die Korrektur überführt werden.
Hinweis
Bei Unklarheiten existiert im Backup-Pfad (/mnt/ld-kopano-stores/) eine zusätzliche YAML-Datei kopano.userlist.yaml, welche ausführliche Informationen zu den LogoDIDACT Benutzerkonten beinhaltet. Diese Datei muss nicht bearbeitet werden, sie dient ausschließlich dem Heranziehen zusätzlicher Informationen.
Sind alle Namen korrekt, wird der Modus --patch verwendet, um die Importkonfigurationen anzupassen:**
Betroffene Dateien im Backupverzeichnis /mnt/ld-kopano-stores/:
- offlineimap.iserv.mailboxes.importlist.config – wird für den IMAP-Mailimport verwendet.
- vdirsyncer.iserv.calendars.importlist.config – wird für den Kalenderimport per CalDAV verwendet.
8.5 Zusätzliche Kalender (sog. Collections) für Benutzerkonten anlegen
Es ist möglich, dass Benutzer unter Kopano zusätzliche Kalender für sich selbst angelegt haben. Das Führen von mehreren Kalendern wird auch in IServ unterstützt. Solche zusätzliche Kalender können in der IServ Weboberfläche unter "Kalender verwalten" → "Eigene Kalender" bei Bedarf von Benutzern angelegt werden, sie lassen sich in der Kalenderverwaltung auch gruppieren.
Um den Import von zusätzlichen Kalendern an der Shell zu ermöglichen, wird ein weiteres Skript 'import-to-iserv-helper.sh' zur Verfügung gestellt. Dieses Skript kann das Anlegen von zusätzlichen Kalendern über http-Requests bzw. Datenbank-Inserts für die Benutzerkonten durchführen, die in der CSV Mapping-Datei kopano.userlist.csv aufgeführt sind.

Das Skript sucht im Kalender-Modus unter dem angebenen Verzeichnis nach Unterordnern, die wie die Benutzernamen oder Mailadressen benannt sind. Diese Ordnerstruktur ergibt sich durch den vorherigen Kopano-Datenexport aus LogoDIDACT. Innerhalb der Kalender-Benutzerverzeichnisse werden dann Ordnernamen gelistet, die exportiert wurden und somit Collections darstellen. Der Standardkalender hat in dieser Verzeichnisstruktur den Ordnernamen "home", die übrigen Ordner stellen zusätzliche Kalender dar.
Gemäß dieser Funktionsweise legt das Skript die zusätzlichen Kalender für die Benutzer an. Es handelt sich hierbei lediglich um "Hüllen", damit die zusätzlichen Kalender in der IServ Oberfläche sichbar sind und gefunden werden können. Es findet an dieser Stelle noch keinerlei Import von Kalenderdaten, also den eigentlichen Terminen, statt! Um den Vorgang anzustoßen, muss das Skript mit den Schaltern -m (--mapfile mit Pfadangabe zur CSV Benutzer-Mappingdatei) sowie -c (--calendarsdir mit Pfadangabe zum Kalender-Exportverzeichnis) aufgerufen werden.

Das Tool erstellt Logdateien für die Vorgänge, pro Benutzer eine eigene Logdatei. Diese befinden sich im Ordner /mnt/ld-kopano-stores/calendars/, also im angebenenen Verzeichnis für die Kalenderdaten.

Sofern keine Fehler aufgetreten sind (oder die zusätzlichen Benutzer-Kalender gar nicht benötigt werden), kann mit dem eigentlichen Import der Kalenderdaten fortgesetzt werden. Dies wird im nächsten Schritt durch Nutzung des vdirsyncer Tools beschrieben.
8.6 Kalenderimport mit vdirsyncer starten
Nun kann der finale Export der Kalenderdaten mittels des Tools vdirsyncer erfolgen:
| IServ | |
|---|---|
Angabe der Konfigurationsdatei, die für den Import verwendet werden soll:
| IServ | |
|---|---|
Hinweis
Auch dieses Tool kann mehrfach ausgeführt werden, um Kalenderinhalte für IServ-Konten zu importieren. Mit dem optionalen Parameter -vdebug können im Bedarfsfall Informationen zu den CalDAV Request eingesehen werden.
In der Logdatei ~/ld-kopano-mailimport/vdirsyncer.iserv.calendars.import.log können die Kalenderimport-Aktionen auch nachträglich noch eingesehen und ausgewertet werden.
Anbei exemplarisch eine mögliche Fehlermeldung des vdirsyncer Tools, die jedoch als unkritisch zu betrachten ist, weil es um bereits vorhandene Kalendereinträge beim IServ Zielbenutzer geht und der Import wiederholend aufgerufen wurde.

Durch das vdirsyncer Tool werden die Kalender jedes Benutzerkontos importiert, für die Daten aus Kopano existieren bzw. Einträge in der Import-Konfigurationsdatei enthalten sind. Nach dem Import der Kalender sollte noch das Kommando iservchk aufgerufen werden.
| IServ | |
|---|---|
8.7 Zurücksetzen der Berechtigungen
Nun ist der Import abgeschlossen und die DAViCal-Berechtigungen müssen dem jeweiligen Nutzer wieder entzogen werden. Hierzu müssen die in 8.2 hinzugefügten Privilegien in umgekehrter Reihenfolge wieder aus der Datenbank entzogen werden.
Hinweis
Den Platzhalter ISERVADMINUSER durch den vorgesehenen Benutzernamen im zweiten Kommando ersetzen.
| IServ | |
|---|---|
9. Importieren der Kontaktdaten
Die nachfolgenden Schritte beschreiben den Import der Kontaktdaten in die IServ Schulplattform.
9.1 Einbinden der Backup-Festplatte und Erstellen des Arbeitsordners
Hinweis
Dieser Schritt kann übersprungen werden, wenn dieser Dokumentation chronolisch gefolgt wurde.
(Label/Pfad zur Backup-Partition ggf. anpassen)
| IServ | |
|---|---|
9.2 Identitätsabgleich
Hinweis
Dieser Abschnitt entspricht anfangs wieder dem unter 5.3 beschriebenen Identitätsabgleich. Auch beim Kontakte-Import muss im Vorfeld überprüft werden, dass alle IServ Zielkonten richtig mit den Benutzernamen aus LogoDIDACT verknüpft sind.
Es ist erforderlich, dass die Mapping-Datei kopano.userlist.csv den Kopano-Benutzernamen (aus Spalte 1) wieder richtig mit dem IServ Benutzernamen (Spalte 3) zusammenführt. Für das Importieren der Kontakte wird ein Shellskript verwendet. Es muss dadurch nicht mehr in einem Configfile gepatcht werden im Unterschied zum Identitätsabgleich für IMAP-Postfächer und Kalender.
Im eingehängten Pfad /mnt/ld-kopano-stores/ befindet sich die Datei kopano.userlist.csv mit drei Spalten:
- Kopano-Benutzername (LogoDIDACT),
- Linux-Accountname (LogoDIDACT),
- IServ-Benutzername (Zielkonto).
Wir gehen im Weiteren davon aus das die IServ-Benutzernamen dem Schema vorname.nachname entsprechen. Bei Abweichungen (Lehrerkürzel, sehr lange Namen etc.) muss die Datei angepasst werden.

Mittels des Skriptes ld-iserv-usermapping.sh kann nun die Mapping-Datei kopano.userlist.csv verarbeitet/angepasst werden.
Wichtig
Es empfiehlt sich, den Modus --check unter Angabe der CSV-Mappingdatei /mnt/ld-kopano-stores/kopano.userlist.csv mindestens einmal auszuführen, dabei prüft das Skript ob alle IServ-Benutzernamen (aus Spalte 3) bereits angelegt sind. Sollten Benutzer fehlen, gibt das Skript einen Fehler aus und listet die Zeile des fehlenden Benutzers auf.

Zur Überprüfung der Benutzernamen also den Check-Modus aufrufen.
9.3 Beispielausgabe nach Fehlermeldung
Das nachfolgende Bild zeigt, dass der Nutzer "tte" nicht gefunden werden konnte. Es handelt sich möglicherweise um ein Lehrerkonto, welches in LogoDIDACT mittels Lehrerkürzel als Accountnamen importiert wurde und innerhalb der IServ Schulplattform unter dem Schema Vorname.Nachname angelegt wurde:

Um nun die Datenmigration zu ermöglichen, muss die Mapping-Datei bearbeitet werden um darin in der Zeile des betroffenen Benutzers (line 6) einen gültigen IServ Account in der Spalte 3 (Zielkonto) zu hinterlegen.
Dieser Vorgang wird nun wiederholt, bis --check keine Fehlermeldung mehr anzeigt.
Hinweis
Bei Unklarheiten existiert im Backup-Pfad (/mnt/ld-kopano-stores/) eine zusätzliche YAML-Datei kopano.userlist.yaml, welche ausführliche Informationen zu den LogoDIDACT Benutzerkonten beinhaltet. Diese Datei muss nicht bearbeitet werden, sie dient ausschließlich dem Heranziehen zusätzlicher Informationen.
9.4 Import der Kontakte über Skript import-to-iserv-helper.sh
Im Backup-Pfad liegt ein weiteres Skript import-to-iserv-helper.sh bereit, welches zum Importieren der .vcf Kontaktdateien vorgesehen ist.

Das Import-Skript wird nun mit den notwendigen Schaltern aufgerufen und dadurch ein Import der *.vcf Kontakten für die zugehörigen IServ Benutzerkonten angestoßen. Es gelten hierbei folgende Regeln:
- der Import findet lediglich für Benutzer statt, die in der Mapping-Datei
kopano.userlist.csventhalten sind - im angegebenen Kontakteorder
/mnt/ld-kopano-stores/contacts/liegen Unterordner für die jeweiligen Benutzer. Hier werden .vcf Dateien gesucht und ggf. importiert, sofern Dateien vorhanden sind. - alle Kontakte werden in das IServ "Eigenes Adressbuch" importiert, unabhängig davon, wie sie vorher unter Kopano abgespeichert waren (z.B. verschachtelt oder aufgeteilt in mehrere Adressbücher)
- bei mehrfachem Aufruf des Import-Skripts werden bereits importierte Kontakte nicht überschrieben, sondern der Import dieser Elemente dann ignoriert
Es müssen die Schalter -m (--mapfile mit Pfadangabe zur CSV Benutzer-Mappingdatei) sowie -v (--vcfdir mit Pfadangabe zum Kontakte-Exportverzeichnis) beim Aufruf des Import-Skripts angegeben werden. Dadurch startet das Skipt und verarbeitet die Dateien.
| IServ | |
|---|---|

Hier im Beispiel ist während des Kontakte-Import alles fehlerfrei abgearbeitet worden. Zwecks Nachvollziehbarkeit werden Logdateien für die Vorgänge generiert, pro Benutzer eine Logdatei. Die Protokolleinträge beinhalten auch einen Zeitstempel.

Nach dem Import der *.vcf Dateien müssen - anders als beim IMAP- und Kalenderimport - keine Einstellungen mehr in der IServ Installation zurückgesetzt werden. Der Vorgang ist somit abgeschlossen.