Aufgabe #1163
offenTatsächliche Migration der StuRa Cloud
Von MichaelLeopold vor mehr als 2 Jahren hinzugefügt. Vor mehr als 2 Jahren aktualisiert.
0%
Beschreibung
Hier soll der Tatsächliche Weg beschrieben sein wie wir letztendlich die alte Owncloud (Version 9.1.2.5) des Stura auf eine Nextcloud (Version 23) migriert haben.
Maßgeblich Beteiligite: heinemann@ vater@ mlp@
Dieses Ticket ist aufbauend zu weiteren Tickets vom Bereich Administration Rechentechnik. Im Zweifel lohnt da auch ein Blick hinein, da dort die Historie ablesbar ist welche Festellungen wir bei verschiedenen Versuchen tätigen konnten.
Ticketlinks:
https://pro.stura.htw-dresden.de/issues/949
https://pro.stura.htw-dresden.de/issues/1104
Wikilinks:
https://wiki.stura.htw-dresden.de/index.php/Srs16#Aktualisierung_8.0.3_zu_8.2.1
Verwendete Guides Links:
https://www.howtoforge.com/tutorial/owncloud_9-installation-on-debian_8/
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
- Beschreibung aktualisiert (Vergleich)
Wir haben dafür maßgeblich eine eigene Proxmox Kiste genutzt, da da wir im Laufe unserer Versuche zu migrieren festgestellt haben, dass unsere Platten im Ceph zu langsam waren. Daher nutzen wir lokalen Speicher mit ausreichen Kapazität, um die kompletten Daten auf einem Gerät zu haben. Im Zweifel ist doppelt so viel besser, um mit einer Kopie arbeiten zu können.
Aufgesetze Geräte, um die Migration durchzuführen:
- Alle Geräte worden unter einem [[https://www.proxmox.com/de/] Proxmox System Version 7.1-10] aufgesetzt.
- Darunter eine alte VM mit Debian 8, da es kein funktionierendes Image für LXC bereit gestellt gab. Man musste Allerdings so weit runter von der Debian Version, da dort noch php5 Standard war.
- Ein Debian 10 und ein Debian 11 LXC um ab einem bestimmten Migrationsschrit die Inhalte von der alten VM auf ein neueren LXC mit höherer Debian Version zu verschieben.
Wichtige Dateien, um eine Migration speziell bei Owncloud/Nextcloud durchführen zu können:
Das Verzeichnis mit den vorhandenen Daten der Cloud: /path/to/cloud/datadirectory
--> In unserem Fall auf der srs1337 unter /mnt/zroot/jails/owncloud_1/media bzw. eigentlich unter /mnt/zroot/data/owncloud/media ,da damals dieses Verzeichnis so konfiguriert worden ist, sodass es erst beim Start der Owncloud Jail (FreeNAS) das Verzeichnis eingehangen wird.
--> Hier speziell nochmal hervorgehoben die owncloud.db Diese enthält die eigentliche Datenbank.
Die Configurationsdatei der Cloud: /path/to/cloud/config/config.php
--> In unserem Fall auf der srs1337 unter /mnt/zroot/jails/owncloud_1/config/config.php
Hinweis: An dieser Stelle sei erwähnt, dass wirklich nur die config.php nötig war. Restliche versteckte Dateien wie bspw. .htaccess war nicht relevant
__________________________________________________________________
Konfiguration der VM mit debian8 als Startsystem
Die Configuration wurde maßgeblich aus dem StuRa Wiki übernommen
https://wiki.stura.htw-dresden.de/index.php/Diskussion:Server/srs16#Installation_von_ownCloud_9.1_oder_Nextcloud_10
Installations Wizard
Hier sei nur kurz gesagt, dass wir Englisch mit US und Eastern Time genommen haben. Ein Problem sind die Spiegel Mirror. Da funktionieren kaum noch welche, also haben wir den Standard genommen.
Pakete und Dienste der VM - Die eigentliche Konfiguration
Hier als Abriss sei erwähnt das einige wichtige Sachen nicht gelich von Haus aus funktionieren. wie z.B. SSH, Rpository Keys etc. Deshalb sind wir so vorgegangen wie nachfolgend Beschrieben bei der Konfiguration. Zu beginn haben wir einige Schritte in der Proxmox eigenen Web Console getätig bis wir per SSH verbinden konnten.
Man wird in der Webconsole standardmäßig mit dem User angemeldet, den man beim Installationswizard erstellt. Wir haben " administration " als User gewählt. Dieser wird später kurz relevant, da wir uns mit diesem per SSH später einwählen werden.
su root
+ Passwort Eingabe.
- ( Ja ist essentiell, da man sonst nichts ausführen kann. )
apt-get update && apt-get upgrade -y
-HINWEIS: Zu Debian 8 Zeiten hatte der " apt Befehl " noch keinen Link zu " apt-get Befehl " d.h. Hier wurde bewusst apt-get verwendet. Auch später für Installationen von Paketen relevant
- "The following packages kept back" linux-image-amd64
apt-get upgrade linux-image-amd64
- läuft durch
nano /etc/apt/sources.list
- Es müssen zusätzlich die drei Repositories von Jessie in die sources.list hinzugefügt werden, da diese nicht existieren. Nachfolgend stehen die gewünschten Repositories.
deb http://deb.debian.org/debian jessie main
deb http://deb.debian.org/debian jessie contrib
deb http://deb.debian.org/debian jessie non-free
Vollständige sources.list
deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main deb http://deb.debian.org/debian jessie main deb http://deb.debian.org/debian jessie contrib deb http://deb.debian.org/debian jessie non-free
apt-get update && apt-get upgrade -y && apt-get autoremove -y
- Sollte jetzt durchlaufen.
Entweder apt-get install openssh-server -y
oder apt -y --force-yes install openssh-server
- Installlieren um SSH Verbindung herstellen zu können
Entweder apt-get install tmux -y
oder apt -y --force-yes install tmux
- Installlieren um besser und mit Sessions arbeiten zu können.
ip a
- IP notieren für den Wechsel weg von der Webconsole zu einer auf dem Gerät
reboot
Hinweis: Hier ist der Moment wo wir von der WebConsole gewechselt sind zu einer auf unserem Gerät, da das Arbeiten so angenehmer war z.B. durch Copy&Paste
Anmeldung per SSH auf der Debian8 VM: ssh administration@ < Hier die notierte IP-Adresse > Passwort eingeben su root Passwort eingeben tmux ls - Keine Sessions tmux
apt-get update
E: The method driver /usr/lib/apt/methods/https could not be found. N: Is the package apt-transport-https installed?
Hinweis: Wir wollen jetzt eigentlich direkt das owncloud Paket herunterladen, um dann mit Owncloud zu beginnen. Allerdings wird er beim wgetn von Owncloud sich daran stören, dass das Zertifikat fehlt Deshalb fügen wir den kurz manuell hinzu.
Es wäre hier auch möglich gewesen ein "apt-get install owncloud" mit passendem Repository auszuführen. Diese hatte jedoch in der Vergangenheit nicht funktioniert.
apt-get install apt-transport-https -y --force-yes
sed -i '/^mozilla\/DST_Root_CA_X3.crt$/ s/^/!/' /etc/ca-certificates.conf
update-ca-certificates
- Jetzt können wir Owncloud herunterladen
Dafür bin ich zu einem Guide Gewechselt, der mit maginalen Änderungen gut funktionierte. Ich baue diese Änderungen hier im Ticket direkt mit ein verlinke dennoch den Guide.
https://www.howtoforge.com/tutorial/owncloud_9-installation-on-debian_8/
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
- Beschreibung aktualisiert (Vergleich)
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
- Beschreibung aktualisiert (Vergleich)
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
- Beschreibung aktualisiert (Vergleich)
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
- Beschreibung aktualisiert (Vergleich)
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
Ab hier geht es mit kleinen Anpassungen nach folgendem Guide weiter https://www.howtoforge.com/tutorial/owncloud_9-installation-on-debian_8/
Hinweis: Die alte Owncloud Instanz nutzte nur SQL Lite weshalb nach Guide beispielsweise mariadb rausfliegt und statessen sqlite gebraucht wird
Hinweis: Dies ist eine gesamtauflistung aller später benötigter Pakete. Eingie davon befinden sich nicht direkt am Anfang vom Guide!
apt-get install -y apache2 libapache2-mod-php5 php5-json php5-gd php5-sqlite php5-curl php5-intl php5-mcrypt php5-imagick bzip2 zip rsync sudo
cd /var/www/
- Wir wechseln gleich mal ins richtige Verzeichnis wo die Cloud später liegen soll.
wget https://download.owncloud.org/community/owncloud-9.1.2.tar.bz2
wget https://download.owncloud.org/community/owncloud-9.1.2.tar.bz2.sha256
sha256sum -c owncloud-9.1.2.tar.bz2.sha256
tar xjvf owncloud-9.1.2.tar.bz2
rm -rf html
-Der Form halber
Hinweis: Der nachfolgende Befehl wird auf der Maschine ausgeführt, wohin die Daten der alten Cloud migriert werden sollen. Er dauert gemäß der Menge an Daten, Plattenngeschwindigkeit, Netzwerkanbindung recht lang.
rsync -avzP -e "ssh -p 1005" root@141.56.51.121:/mnt/zroot/data/owncloud/media /var/www/SYNC-DATA-2022-03-25/
Hier sei nochmals erwähnt, dass die Jail der alten srs1337 wo Owncloud als Plugin lief den daten Ordner von Owncloud automatisch eingehangen bekommen hat. Im gestoppten Zustand der Jail konnte man sich demnach nur die Daten aus einem anderem Pfad ( dem der eingehängt wird) synchronisieren. Deshalb weicht der rsync Befehl hier etwas von der aus Ticket 1104 ab. Diese Befehl ist der eigentlich richtige.
In der Zwischenzeit:
-Bearbeite die Apache Configuration. Füge den Owncloud Ordner hinzu.
nano /etc/apache2/sites-available/000-default.conf
Vollständige 000-default.conf
<VirtualHost *:80> ServerName < SET IP HERE > ServerAdmin webmaster@localhost DocumentRoot /var/www/owncloud ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <Directory /var/www/owncloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/owncloud SetEnv HTTP_HOME /var/www/owncloud </Directory>
-Erstelle ein Skript, dass alle Permissions (Rechte) der Dateien und Unterordner sowie den Ordner "owncloud" selbst richtig setzt. Aktuell gehört das meiste root. www-data User benötigen wir allerdings.
Im späteren Verlauf werden wir auch ein Skript benötigen, dass diese Aufgabe für den Ordner "nextcloud" erledigt. Also erstellen wir gleich das Skript für beide Ordner.
nano oc-permissions.sh
#!/bin/bash ocpath='/var/www/owncloud' htuser='www-data' htgroup='www-data' rootuser='root' printf "Creating possible missing Directories\n" mkdir -p $ocpath/data mkdir -p $ocpath/assets printf "chmod Files and Directories\n" find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640 find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750 printf "chown Directories\n" chown -R ${rootuser}:${htgroup} ${ocpath}/ chown -R ${htuser}:${htgroup} ${ocpath}/apps/ chown -R ${htuser}:${htgroup} ${ocpath}/config/ chown -R ${htuser}:${htgroup} ${ocpath}/data/ chown -R ${htuser}:${htgroup} ${ocpath}/themes/ chown -R ${htuser}:${htgroup} ${ocpath}/assets/ chmod +x ${ocpath}/occ printf "chmod/chown .htaccess\n" if [ -f ${ocpath}/.htaccess ] then chmod 0644 ${ocpath}/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/.htaccess fi if [ -f ${ocpath}/data/.htaccess ] then chmod 0644 ${ocpath}/data/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess fi
chmod u+x oc-permissions.sh
nano nc-permissions.sh
#!/bin/bash ocpath='/var/www/nextcloud' htuser='www-data' htgroup='www-data' rootuser='root' printf "Creating possible missing Directories\n" mkdir -p $ocpath/data mkdir -p $ocpath/assets printf "chmod Files and Directories\n" find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640 find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750 printf "chown Directories\n" chown -R ${rootuser}:${htgroup} ${ocpath}/ chown -R ${htuser}:${htgroup} ${ocpath}/apps/ chown -R ${htuser}:${htgroup} ${ocpath}/config/ chown -R ${htuser}:${htgroup} ${ocpath}/data/ chown -R ${htuser}:${htgroup} ${ocpath}/themes/ chown -R ${htuser}:${htgroup} ${ocpath}/assets/ chmod +x ${ocpath}/occ printf "chmod/chown .htaccess\n" if [ -f ${ocpath}/.htaccess ] then chmod 0644 ${ocpath}/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/.htaccess fi if [ -f ${ocpath}/data/.htaccess ] then chmod 0644 ${ocpath}/data/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess fi
chmod u+x nc-permissions.sh
Mit ls -al
können wir kontrollieren, ob alle Rechte richtig gesetzt worden sind und diese beiden Skripte ausführbar sind.
Jetzt können wir noch einige Apache Module aktivieren bzw. kontrollieren ob diese laufen.
a2enmod rewrite headers env dir mime
systemctl restart apache2
- Restart apache Web Server
- Ab jetzt müsste die Owncloud in der Version 9.1.2 vorliegen und erreichbar sein.* Von hier an geht es mit dem migrieren los.
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
Hinweis: Während der Migration soll vor und nach jedem Upgrade die owncloud.db und die config.php Datei in /opt/copies/ zwischengespeichert werden, um im Falle eines Problems auf Zwischenstände zurück greifen zu können.
Dabei ist folgende Bennenung vorgeschrieben:
owncloud.db_9.1.2.5_before_upgrade
owncloud.db_9.1.2.5_after_upgrade
config.php_9.1.2.5_before_upgrade
config.php_9.1.2.5_after_upgrade
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
cp -R /var/www/SYNC-DATA-2022-03-25/media/ /var/www/owncloud/data
ls -al /var/www/owncloud/data/
Hinweis: Wir benötigen auch die config Datei der alten Jail
/var/www/SYNC-CONFIG-2022-03-25# rsync -avzP -e "ssh -p 1005" root@141.56.51.121:/mnt/zroot/jails/owncloud_1/usr/pbi/owncloud-amd64/www/owncloud/config /var/www/SYNC-CONFIG-2022-03-25
cp config.php ../../owncloud/config/config.php.old
Wir haben die Config aus der alten jail so angepasst, dass nur die nötigsten sachen enthalten sind + wichitge inhalte der alten instanz sowie der neuen kombiniert
Vollständige config.php
<?php │ $CONFIG = array ( │ 'instanceid' => '523761d2d3697', │ 'passwordsalt' => '3a4c7c66041ef654e13cadfdc08fbc', │ 'trusted_domains' => │ array ( │ 0 => '141.56.50.58', │ ), │ 'datadirectory' => '/var/www/owncloud/data', │ 'overwrite.cli.url' => 'http://141.56.50.58', │ 'dbtype' => 'sqlite3', │ 'version' => '9.1.2.5', │ 'installed' => true, │ 'maintenance' => false, │ ); │ │ /* │ 1 => 'cloud.stura.htw-dresden.de', │ 2 => 'cloud.htw.stura-dresden.de', │ 3 => 'www.cloud.htw.stura-dresden.de', │ 4 => 'www.owncloud.stura-dresden.de', │ 5 => 'owncloud.stura-dresden.de', │ │ │ 'mail_from_address' => 'files', │ 'mail_smtpmode' => 'sendmail', │ 'mail_domain' => 'stura.htw-dresden.de', │ 'secret' => 'C3B9gadxFaOEmLzxUusA7ry.BnFSfehu3x0WYwAbfuUb7t0q', │ 'trashbin_retention_obligation' => 'auto', │ 'mail_smtphost' => 'mail.stura.htw-dresden.de', │ 'mail_smtpport' => '25', │ */
systemctl restart apache2
./oc-permissions.sh
jetzt kann man sich testweise mit einem alten user in die cloud einloggen und schauen ob alle user da sind
Wir haben den User "files" genutzt und das Passwort ist nach Schema gesetzt gewesen.
Login hat geklappt und User sind alle vorhanden.
service apache2 stop
Ab hier müssen wir die Owncloud 9 zu nextcloud 10 wehseln dafür haben wir einen guide benutz dieser ist hier verlinkt:
https://bscable.info/migrate-from-owncloud-9-1-1-to-nextcloud-10-0-2/
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
Weiter nach guide: https://bscable.info/migrate-from-owncloud-9-1-1-to-nextcloud-10-0-2/
https://help.nextcloud.com/t/migrating-from-owncloud-to-nextcloud/551
- lesen
wget https://download.nextcloud.com/server/releases/latest-10.zip
mv data nextcloud/
mv config.php nextcloud/config
Hinweis: Unbedingt den Pfad auch in der Config anpassen und zu nextcloud umschreiben
<?php │ $CONFIG = array ( │ 'instanceid' => '523761d2d3697', │ 'passwordsalt' => '3a4c7c66041ef654e13cadfdc08fbc', │ 'trusted_domains' => │ array ( │ 0 => '141.56.50.58', │ ), │ 'datadirectory' => '/var/www/nextcloud/data', │ 'overwrite.cli.url' => 'http://141.56.50.58', │ 'dbtype' => 'sqlite3', │ 'version' => '9.1.2.5', │ 'installed' => true, │ 'maintenance' => false, │ ); │ │ /* │ 1 => 'cloud.stura.htw-dresden.de', │ 2 => 'cloud.htw.stura-dresden.de', │ 3 => 'www.cloud.htw.stura-dresden.de', │ 4 => 'www.owncloud.stura-dresden.de', │ 5 => 'owncloud.stura-dresden.de', │ │ │ 'mail_from_address' => 'files', │ 'mail_smtpmode' => 'sendmail', │ 'mail_domain' => 'stura.htw-dresden.de', │ 'secret' => 'C3B9gadxFaOEmLzxUusA7ry.BnFSfehu3x0WYwAbfuUb7t0q', │ 'trashbin_retention_obligation' => 'auto', │ 'mail_smtphost' => 'mail.stura.htw-dresden.de', │ 'mail_smtpport' => '25', │ */
./nc-permissions.sh
sudo -u www-data php /var/www//occ upgrade
Hinweis: Unbedingt den Pfad auch in der Apache Config anpassen und von owncloud zu nextcloud umschreiben
<VirtualHost *:80> ServerName 141.56.50.58 ServerAdmin webmaster@localhost DocumentRoot /var/www/nextcloud ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <Directory /var/www/nextcloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud </Directory>
Copieren der owncloud.db ( von der nextcloud 10 latest ) und ebenso copieren der config.php
Ab hier werden sich die letzten Schritte mehrfach wiederholen. Für je eine Version Nextcloud 11, Nextcloud 12 , 13 ... einmal alles durchführen.
bei Abweichungen wie z.B: Debian upgrade und php5 zu php7 dokumentieren wir weiter.
Von GoeranHeinemann vor mehr als 2 Jahren aktualisiert
Wir haben die Upgrades bis Version 13 durchgeführt - da kommt zuerst eine Warnung, dass in Zukunft PHP Version 7 verwendet werden soll.
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get autoremove
apt-mark showhold
cp /etc/apt/sources.list /etc/apt/sources.list_backup_jessie
sed -i 's/jessie/stretch/g' /etc/apt/sources.list
nano /etc/apt/sources.list
- einfach mal kontrollieren
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get autoremove
reboot
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list deb https://packages.sury.org/php/ stretch main
rm -rf assets/
Von MichaelLeopold vor mehr als 2 Jahren aktualisiert
- Kategorie wurde auf Instanz MediaWiki gesetzt
- Status wurde von Neu zu Feedback geändert
- Zugewiesen an wurde auf Bereich Administration Rechentechnik gesetzt
Es fehlt noch ie Dokumentation!