Seafile Migration
7 02 2015HowTo Migrate
Beim Umziehen einer seafile Instanz auf einen neuen Server gibt es an ein paar Stellen einiges zu beachten. Der hier beschriebene Weg dient ebenfalls einem Recovery aus einem Backup. ACHTUNG keine vollständige Anleitung zur Erstinstallation
Backup der Daten
Es müssen die Datenbanken gesichert werden und das Verzeichniss. Falls das Datenverzeichnis nicht im Default liegt dieses natürlich auch. Vor dem Backup ist die Anwendung zu stoppen.
Datenbank
# !/bin/bash
mysqldump -h localhost -u root -p ccnet-db > ccnet-db.sql
mysqldump -h localhost -u root -p seafile-db > seafile-db.sql
mysqldump -h localhost -u root -p seahub-db > seahub-db.sql
Daten
cd /var/lib/
tar cfvz seafbak.tar.gz seafile
Recovery der Daten
Erstellen des MySql-Users und der Datenbanken. Hiebei ist darauf zu achten das die Datenbanknamen Sonderzeichen enthalten (`db-@name`). root@maximegalon:~/sea# mysql -p
Datenbankdumps einspielen:
Enter password:
[...]
mysql> CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'seafile';
mysql> create `ccnet-db`;
mysql> create `seafile-db`;
mysql> create `seafile-db`;
mysql> exit#!/bin/bash
Danach müssen die Berechtigungen neu gesetzt werden:
mysql -u root -p seahub-db < seahub-db.sql
mysql -u root -p ccnet-db < ccnet-db.sql
mysql -u root -p seafile-db < seafile-db.sqlmysql
root@maximegalon:~/sea# mysql -p
Enter password:
[...]
mysql> GRANT ALL privileges ON `seahub-db`.* TO 'seafile'@'localhost';
mysql> GRANT ALL privileges ON `seafile-db`.* TO 'seafile'@'localhost';
mysql> GRANT ALL privileges ON `ccnet-db`.* TO 'seafile'@'localhost';
mysql> flush privileges;
Verzeichnis ausrollen
Verzeichnis entpacken und Benutzer sowie Gruppe anlegen. Falls notwendig Berechtigungen anpassen (seafile.seafile). root@maximegalon:~# useradd -d /var/lib/seafile -g seafile
root@maximegalon:~/sea# ls -rtl /var/lib/sea*
drwxr-xr-x 3 seafile seafile 4096 Jan 11 19:54 seafile
Es müssen die files ccnet/ccnet.conf , seafile-data/seafile.conf und lendadcloud/ seahub_settings.py angepasst werden. In genannten Dateien sind die Werte für FILE_SERVER_ROOT und HTTP_SERVER_ROOT, SERVCICE_URL sowie die MySQL Verbindungsdaten anzupassen Gegebenenfalls auch in ccnet/misc/.peer die Servernamen.
Daten neu einchecken und initialisieren
Dieser Vorgang wird mittels seaf-fsck bewerkstelligt. Dieses Tool benötigt jedoch Datenbankzugang für welchen es aber keine Passwort Option bereitgestellt wird. Daher muss mysql ohne Zugangsberechtigungen gestartet werden: /etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
cd /var/lib/seafile/yourcloud/seafile-server-latest/seafile
export LD_LIBRARY_PATH=./lib:${LD_LIBRARY_PATH}
./bin/seaf-fsck -c ../../ccnet -d ../../seafile-data
Nginx or Proxy
Natürlich muss noch die nginx Konfiguration deployed werden oder eben euere Proxykonfiguration. Oder wie auch immer hier den Traffic zur großen See weiterreicht.
Starten
su - seafile
./yourcloud/seafile-server-latest/seafile.sh start
./yourcloud/seafile-server-latest/seahub.sh start-fastcgi
Workspace