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.

Erstellen eines Remote-Benutzers in ISPConfig

Sie benötigen einen Remote-Benutzer auf dem Ziel-IPConfig-Server.

Gehen Sie zu System -> Remote User

Remote-Benutzer in ISPConfig hinzufügen.

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“.

Remote-Benutzerberechtigungen

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.

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!

Das könnte Dich auch interessieren …