So migrieren Sie ISPConfig 2, ISPConfig 3.x, Confixx oder Plesk auf ISPConfig 3.1 (Einzelserver)
In diesem Howto zeigen wir Ihnen, wie Sie mit dem ISPConfig Migration Tool 2.0 einen einzelnen Server auf einen neuen ISPConfig 3.1 Server migrieren können. Das Migration Tool ist Teil des ISPConfig Migration Toolkits, das hier verfügbar ist.
Mit dem ISPConfig Migration Tool können diese Hosting Control Panels auf einen ISPConfig 3.1 Server migriert werden:
- ISPConfig 2
- ISPConfig 3 und 3,1
- Plesk 10 – 12.5
- Plesk Onyx
- Confixx
In diesem Tutorial werden wir einen ISPConfig 3.0-Server auf ein neues System mit ISPConfig 3.1 migrieren. Die Migration von anderen unterstützten Hosting-Control Panels erfolgt in ähnlicher Weise. Das Migrationstool führt Sie Schritt für Schritt durch den Migrationsprozess.
Voraussetzungen
- ISPConfig 3.x auf dem Quellserver.
- ISPConfig 3.1.7 oder höher auf dem Zielserver.
- PHP 5.3+ mit JSON, mcrypt, OpenSSL und mbstring Unterstützung im Quellcode.
- Migration Toolkit Lizenz.
- Der alte und der neue Server müssen denselben Let’s Encrypt-Client verwenden. Wenn Ihr alter Server certbot verwendet, dann stellen Sie sicher, dass das neue System ebenfalls certbot und nicht acme.sh verwendet.
Erstellen eines Remote-Benutzers in ISPConfig
Sie benötigen einen Remote-Benutzer auf dem Ziel-IPConfig-Server.
Gehen Sie zu System -> Remote User
Klicken Sie auf die Schaltfläche Neuen Benutzer hinzufügen.
Geben Sie einen Benutzernamen und ein Passwort für den entfernten Benutzer ein, z. B. „remoter“ und stellen Sie sicher, dass Sie alle Kontrollkästchen aktiviert haben. Klicken Sie dann auf „Speichern“.
Wenn Sie eine ISPConfig Version 3.1.11 auf dem Zielserver verwenden, dann bearbeiten Sie die Datei /usr/local/ispconfig/security/security_settings.ini als root-Benutzer:
nano /usr/local/ispconfig/security/security_settings.ini
und ändern Sie die Werte von ids_anon_enabled und ids_user_enabled von ‚yes‘ auf ’no‘.
.... [ids] ids_anon_enabled=no ids_anon_log_level=1 ids_anon_warn_level=5 ids_anon_block_level=20 ids_user_enabled=no ids_user_log_level=1 ids_user_warn_level=10 ids_user_block_level=25 ids_admin_enabled=no ids_admin_log_level=1 ids_admin_warn_level=5 ids_admin_block_level=100 sql_scan_enabled=yes sql_scan_action=warn apache_directives_scan_enabled=yes nginx_directives_scan_enabled=yes ....
Das IDS kann nach Abschluss der Migration wieder aktiviert werden. Wenn Sie ISPConfig 3.1.12 oder neuer verwenden, ist diese Änderung nicht erforderlich.
Als nächstes überprüfen Sie bitte, ob das php-soap-Modul auf dem Zielserver installiert ist. Wenn es nicht installiert ist, dann installieren Sie es jetzt. Unter Debian und Ubuntu können Sie das PHP-Soap-Modul mit apt installieren:
apt-get install php-soap
Eine weitere Voraussetzung ist, dass Ziel- und Quellserver mit rsync ausgestattet sind. Bitte überprüfen Sie mit z.B:
rsync --version
auf beiden Knoten, dass rsync installiert ist. Wenn es nicht installiert ist, dann installieren Sie das rsync-Paket des Betriebssystems. Z.B. mit:
apt-get install rsync
auf Debian und Ubuntu oder mit:
yum install rsync
auf CentOS.
Alle folgenden Schritte werden auf dem Quellserver durchgeführt, sofern nicht anders angegeben.
Herunterladen und Entpacken des Migrationstools
cd /root mkdir migration cd migration wget https://www.ispconfig.org/downloads/ispconfig_migration_toolkit-latest.zip unzip ispconfig_migration_toolkit-latest.zip mv ispconfig_migration_toolkit/ispc3-migration-tool-*.tar.gz /root/migration/migtool.tar.gz tar xzf migtool.tar.gz rm -f migtool.tar.gz
Passwortfreie Anmeldung vorbereiten (optional)
Während der Migration wird es eine SSH-Verbindung geben, um Einstellungen und Daten von der Quelle auf die Zielserver zu übertragen. Dazu muss der Quellserver in der Lage sein, sich ohne Passwort mit den Zielen zu verbinden.
Du kannst beides:
- Richten Sie selbst eine passwortlose Anmeldung ein (fügen Sie den öffentlichen Schlüssel der Quelle zur authorized_keys-Datei der Ziel-Root hinzu).
- Oder erlauben Sie den Root-Zugriff via ssh auf das Ziel per Passwort (temporär). Das Migrationstool ruft dann ssh-keygen und ssh-copy-id für Sie auf. Dies sind direkte Systemaufrufe. Wenn Sie also in diesem Schritt nach dem ssh-Root-Passwort des Ziels gefragt werden, wird die Eingabe NICHT vom Migration Tool gelesen, sondern direkt vom Systembefehl ssh-copy-id.
Durchführung der Migration (Trockenlauf)
./migrate
Welcome to the ISPConfig3 Migration Tool V2 Version 2.0.0
Although this tool does not alter anything on the source server, you should
ALWAYS make a BACKUP of all your data before migrating to a new server!
You need to have some prerequisites set up to use this tool:
* create an remote user (system -> remote users) in your TARGET ISPConfig3 system and grant ALL rights to it
* make sure this (the SOURCE system) can reach the remoting api of the TARGET system
*** Disclaimer of Warranties ***
ISPConfig disclaims to the fullest extent authorized by law any and all other warranties, whether express or implied,
including, without limitation, any implied warranties of title, non-infringement, integration, merchantability or
fitness for a particular purpose.
By continuing to use this software, you agree to this.
First of all the most important question:
Do you want to make a real migration or a dry run? (dry, migrate): dry
Wir wollen zuerst im Trockenlaufmodus laufen, also gehen wir hier trocken ein.
The following modules are available:
1. Confixx to ISPConfig 3 migrator (confixx)
2. Plesk (10.5 - 17.5) to ISPConfig 3 migrator (plesk)
3. ISPConfig 2 to 3 migrator (ispconfig2)
4. ISPConfig 3 to ISPConfig 3 migrator (ispconfig3)
Which one is the one matching your SOURCE system? (confixx, plesk, ispconfig2, ispconfig3): ispconfig3
Das Migrationstool muss wissen, welches Control Panel Sie auf Ihrem Quellserver verwenden. Es versucht, das gewünschte Modul auf dem Quellserver zu erkennen, so dass Sie normalerweise einfach ENTER drücken können.
Enter this (SOURCE) server's ip that is used for outgoing connections [192.168.10.10]: 123.123.123.123
Das Migrationstool muss wissen, welche IP-Adresse auf dem Quellserver für ausgehende Verbindungen verwendet wird, d. h. welche IP-Adresse andere Server sehen, wenn sich die Quelle mit ihnen verbindet. Das Tool versucht, die IP-Adresse zu erraten, aber Sie müssen den Wert möglicherweise ändern, wenn Sie beispielsweise ein privates Netzwerk verwenden.
Name of the remote user of TARGET ISPConfig3 system []: remoter Password for this remote user []: yourremotepassword URL to the remote system (e. g. https://yourdomain.com:8080/remote/) []: https://www.example.com:8080/remote/ You gave me remote user 'remoter' with password 'yourremotepassword' And I shall connect to 'https://www.example.com:8080/remote/' Is this correct? (y, n): y
Stellen Sie dem Migrationstool die Daten des entfernten Benutzers zur Verfügung, die Sie auf dem Ziel angelegt haben, und bestätigen Sie Ihre Eingabe mit „y“. Das Migrationstool versucht dann, sich mit der entfernten API Ihres Zielsystems zu verbinden.
I will now have to make some changes in your ISPConfig3 TARGET system config.
1.) Enable domain module if needed
2.) Remove client prefixes (will be undone automatically at the end)
3.) Enable login for mail accounts if needed
Testing MySQL connection ... OK
What is the main public(!) ip of the target server www.example.com? [123.123.123.123]: [ENTER]
Das Migrationstool ändert einige ISPConfig-Einstellungen am Ziel (diese Änderungen werden nicht durchgeführt, wenn es im Trockenlauf läuft) und testet die Verbindung zum MySQL-Server. Es versucht, die MySQL-Anmeldeinformationen zu erraten, indem es sich einige Systemdateien ansieht, aber schließlich werden Sie nach dem MySQL-Root-Passwort gefragt. Falls die IP Adressen nicht bekannt sind, kann man diese mittels ifconfig auf dem server abfragen.
Als nächstes müssen Sie die öffentliche IP des Zielservers angeben. Es wird von DNS vorab abgerufen, aber Sie müssen es möglicherweise anpassen, besonders wenn Sie den gleichen Hostnamen für Quelle und Ziel verwenden.
Do you want me to overwrite/update existing entries with the same name? (y, n): y
You can now set entry names, that shall NOT be overwritten.
You should use this if you plan to import several server's data to a multi-server installation.
If this tool finds a name that is already present, it UPDATES the data with the SOURCE data!
If this tool finds a name that you marked as not to overwrite, it either
- appends a _2, _3 etc. to this name and creates a new entry, or
- prepends a server prefix if specified by --server-prefix argument
Das Migrationswerkzeug ermöglicht es, mehrere Server zu einem Ziel zusammenzuführen. Dabei kann es vorkommen, dass es auf den Quellservern zu widersprüchlichen Benutzernamen kommt, z. B. wenn Sie zwei Datenbanken mit dem Namen „testdatabase“ haben. Wenn Sie diese Frage mit „y“ beantworten, dann ersetzt die zweite Datenbank die erste. Wenn Sie „n“ beantworten, wird der Name der zweiten Datenbank in „testdatabase_2“ geändert.
Achten Sie darauf, dass Sie bei einer Einzelserver-Migration mit „y“ antworten, da Sie sonst Duplikate erstellen, wenn Sie das Migrationstool mehrmals auf derselben Quelle ausführen.
You currently have 0 FTP username name(s) marked:
You can now add further names to this list. Just enter them one by one or provide a comma-separated list.
To delete one or more names from the list, prepend a /DELETE to your input.
To clear all names from the list, type /CLEAR.
A blank input proceeds to the next step.
Your choice : [ENTER]
Das Migrationstool bietet Ihnen die Möglichkeit, einige Benutzernamen für FTP, Datenbanken, Clients usw. als „reserviert“ zu markieren. Das bedeutet, dass sie nicht überschrieben werden, wie im obigen Abschnitt erwähnt. Normalerweise lässt du dieses Feld leer, aber in einigen Fällen kannst du verhindern, dass Benutzernamen wie „admin“ oder „administrator“ importiert werden. So können Sie sie hier eingeben, was zu einer Umbenennung der importierten Namen in „admin_2“ etc. führt.
Die Frage wird für die verschiedenen Diensttypen (FTP, Datenbank, Clients, Mail-Benutzer) wiederholt.
What is the database name of your SOURCE ISPConfig 3 installation? [dbispconfig]: [ENTER]
Das Tool fragt nun nach dem Datenbanknamen auf dem Quellserver, der die Daten des Control Panels enthält. Bitte überprüfen Sie, ob die erkannte Datenbank korrekt ist und ändern Sie sie bei Bedarf.
Do you want to migrate only some services or everything?
Valid services are: client, web, mail, ftp, database, cronjob, dns, billing
Please enter one or more services (comma-separated) or leave blank for all: [ENTER]
Das neue Migrationstool ist in der Lage, nur eine Teilmenge von Diensten zu migrieren, z. B. nur Mailkonten zu migrieren und Webs zu überspringen usw.
Wir wollen alle Dienste migrieren, also lassen wir einfach die Eingabe leer und drücken ENTER.
To copy over web data, I need SSH access to the target webserver. Please make sure that root login via SSH is allowed. On the target open /etc/ssh/sshd_config and set PermitRootLogin to yes or without-password. You can revert this once the migration is complete. What is the ip for the target web server to connect via SSH? [123.123.123.123]: [ENTER] What is the SSH port? [22]: [ENTER]
Für das Kopieren von Web-, Mail- und DB-Daten benötigt das Migrationstool einen passwortfreien SSH-Zugang zum Zielserver. Sie müssen die IP-Adresse und den Port angeben, mit dem sich die Quelle verbinden soll. Wenn Sie noch keinen passwortlosen Zugriff eingerichtet haben, werden Sie nach dem Root-SSH-Passwort des Zielservers gefragt.
Testing MySQL connection ... OK Starting API calls. [50/74] <Domain> processing mydomain.com
Das Tool beginnt nun mit der Erstellung/Aktualisierung aller Einträge auf der Ziel-IPConfig. Im Trockenlauf wird es natürlich nichts ändern oder kopieren. Warten Sie, bis die API-Aufrufe abgeschlossen sind.
Processing of entries done. ============= Migration tool run completed.
Sobald das Migrationstool den Trockenlauf ohne Fehler beendet hat, können wir mit der eigentlichen Migration fortfahren.
Durchführung der Migration
./migrate
Welcome to the ISPConfig3 Migration Tool V2 Version 2.0.0rc2
Although this tool does not alter anything on the source server, you should
ALWAYS make a BACKUP of all your data before migrating to a new server!
You need to have some prerequisites set up to use this tool:
* create an remote user (system -> remote users) in your TARGET ISPConfig3 system and grant ALL rights to it
* make sure this (the SOURCE system) can reach the remoting api of the TARGET system
*** Disclaimer of Warranties ***
ISPConfig disclaims to the fullest extent authorized by law any and all other warranties, whether express or implied,
including, without limitation, any implied warranties of title, non-infringement, integration, merchantability or
fitness for a particular purpose.
By continuing to use this software, you agree to this.
First of all the most important question:
Do you want to make a real migration or a dry run? (dry, migrate): migrate
Diesmal beantworten wir die Eingabeaufforderung mit „migrieren“ und beantworten die Fragen wie beim Trockenlauf. Das Tool wird Ihre Eingaben aus dem Trockenlauf vorgefüllt haben, so dass Sie meist ENTER drücken können.
Testing MySQL connection ... OK Copying Let'sEncrypt files to target ... OK Starting API calls. [9/11] processing mymail@example.com (web213p41)
Diesmal dauert der Prozess etwas länger, da echte API-Aufrufe ausgeführt werden. Warten Sie, bis der Prozess abgeschlossen ist.
Processing of entries done. Target ISPConfig job queue has 35 entries left. Waiting ..
Um sicherzustellen, dass alle Pfade auf dem Ziel erstellt werden, wartet das Migration Tool darauf, dass ISPConfig alle Anfragen bearbeitet, bevor es weitergeht.
[INFO] Target ISPConfig job queue has completed. Continuing. [19/935] Syncing /var/www/clients/client26/web21/web to /var/www/clients/client1424/web21/
Nun synchronisiert das Tool alle Pfade (Web, Mail) und kopiert die Datenbankinhalte auf den Zielserver. Dieser Vorgang kann je nach Datenmenge einige Zeit in Anspruch nehmen.
Wenn Sie die eigentliche Datensynchronisation in einem separaten Schritt durchführen möchten, können Sie sie überspringen, indem Sie./migrate –no-syncjobs statt nur./migrate ausführen.
Letzte Schritte
Das Migrationstool setzt die Werte, die es am Anfang geändert hat (z. B. Kundenpräfixe), zurück.
Abhängig von Ihrem Source Control Panel hat das Migration Tool das Domänenmodul auf Ihrem Ziel-IPConfig aktiviert. Das bedeutet, dass Domains für Websites, E-Mail-Domains etc. nur verwendet werden können, wenn sie zuvor von einem Administrator zugewiesen wurden (über Client -> Domains). Wenn Sie das Domänenmodul nicht verwenden möchten, können Sie es unter System -> Schnittstelleneinstellungen -> Registerkarte „Domänen“ deaktivieren.
Überprüfen Sie abschließend die migrate.log, die für Einträge erstellt wurde, die mit den Markern[ERROR] oder[WARNING] versehen sind. Diese zeigen Probleme während des Migrationsprozesses an.
Synchronisieren Sie Ihr Ziel erneut.
Re-Sync Konten und Einstellungen
Wenn sich nach der Migration im Versionsverwaltungsfenster etwas geändert hat, können Sie es einfach erneut ausführen. Das Migrationstool aktualisiert alle Einträge mit den neuen Einstellungen Ihres Quellservers. Und fügen Sie neue Einträge hinzu, die in der Zwischenzeit angelegt wurden. Gelöschte Einträge in der Quelle werden nicht auf dem Ziel gelöscht!...
Daten erneut synchronisieren
Wenn Sie nur die Daten für Web, E-Mail und Datenbanken erneut synchronisieren möchten, können Sie ./migrate –syncjobs ausführen. Dadurch werden alle Migrationsschritte übersprungen und nur die Synchronisation von Websites, Datenbanken und E-Mails durchgeführt.
Sie können auch nur einen der Dienste erneut synchronisieren, z. B. ./migrate –syncjobs –only=database. Dadurch wird die erneute Synchronisierung von Website-Daten und E-Mails übersprungen.
Erweiterte Optionen
Um eine Liste der erweiterten Optionen zu erhalten, die es ermöglichen, z.B. einzelne Websites, Mail-Domains oder Clients zu migrieren, verwenden Sie die Option –help.
./migrate --help
Die aktuellen Optionen sind:
Usage: migrate <options> List of options: --help Show this screen --server-prefix=<prefix> Use given prefix for conflicting usernames, if further conflicts occur, add _2 _3 _4 ... to username --source-temp-dir=<parth> Set a different temp directory for actions on the source server than /tmp --target-temp-dir=<parth> Set a different temp directory for actions on the target server than /tmp --syncjobs Don't run the migration process, just re-sync all data (web files, database contents) --no-syncjobs Only do the migration, don't copy any data files or database contents to target --ignore-sync-errors Don't abort syncjobs processing if an error occurs. This can be helpful for example if a command like chattr does not work correctly on the target server. --confixx-no-domain On a confixx migration (source server) do not create a dummy website that contains all other domains of that client as alias domains. Confixx uses a different approach for storing and managing domains, so there is no "main" domain, but a hosting instead, that has all domains assigned. On confixx servers where clients only have a single domain it can be better to not create a dummy website with a single alias, but use the domain as website instead. --only=client|web|mail|ftp|database|cronjob|dns|billing Only migrate the given service(s) and skip the others. Can be provided multiple times. --exclude=client|web|mail|ftp|database|cronjob|dns|billing Migrate all services but the given one(s). Can be provided multiple times. --only=/--exclude= on --syncjobs run When limiting the resync to single services, only web, mail, database, system are valid. --only-client=<username> Only migrate a single client and it's data (web, mail etc.). This can be used together with --only= / --exclude= to limit the migrated data even further. --only-web=<domain.com> Only migrate the given domain and it's assigned databases, ftp accounts etc. This can be used together with the other --only-x/--exclude-x and --only=/--exclude= options to specify the data to be migrated. --only-mail=<domain.com> Only migrate the given mail domain and it's assigned mail accounts, spam filter etc. This can be used together with the other --only-x/--exclude-x and --only=/--exclude= options to specify the data to be migrated. --only-database=<databasename> Only migrate the given database and it's parent website. This can be used together with the other --only-x/--exclude-x and --only=/--exclude= options to specify the data to be migrated. --only-dns=<domain.com> Only migrate the given DNS zone and it's assigned DNS records. The above options can also be used in the opposite way, using --exclude-client, --exclude-web, --exclude-mail, --exclude-database, --exclude-dns WARNING! Clients ALWAYS have to be migrated otherwise you will have all migrated data assigned to the admin user instead of the client!