Как перенести ISPConfig 2, ISPConfig 3.x, Confixx, CPanel или Plesk на ISPConfig 3.2 (один сервер)
В этом руководстве мы покажем, как использовать ISPConfig Migration Tool 2.0 для миграции одного сервера на новый сервер ISPConfig 3.2. Инструмент миграции является частью набора инструментов ISPConfig Migration, который доступен здесь.
Инструмент ISPConfig Migration Tool можно использовать для переноса этих панелей управления хостингом на сервер ISPConfig 3.2:
- ISPКонфиг 2
- ISPConfig 3 и 3,1
- Плеск 10 – 12,5
- Плеск Оникс
- Конфикс
- Панель управления
В этом руководстве мы перенесем сервер ISPConfig 3.0 в новую систему, на которой работает ISPConfig 3.2. Миграция с других поддерживаемых панелей управления хостингом осуществляется аналогично. Инструмент миграции шаг за шагом проведет вас через процесс миграции.
Предварительные требования и примечания
- ISPConfig 3.x на исходном сервере.
- ISPConfig 3.1.7 или выше на целевом сервере.
- PHP 5.3+ с поддержкой JSON, mcrypt, OpenSSL и mbstring в исходном коде.
- Старый и новый серверы не должны быть подключены к одному и тому же главному серверу. Если они подключены к одному и тому же главному устройству, вместо этого используйте ISPCopy (который также является частью Migration Toolkit).
- Лицензия на набор инструментов для миграции.
- Сертификаты Let's Encrypt: старый и новый сервер должны использовать один и тот же клиент Let's Encrypt. Если ваш старый сервер использует Certbot, убедитесь, что новая система также использует Certbot, а не Acme.sh. Если вы устанавливаете новый сервер с помощью автоустановщика ISPConfig, а ваш старый сервер использует certbot, используйте ключ командной строки --use-certbot в автоустановщике, чтобы установить certbot вместо acme.sh на новом сервере.
- Мультисерверные настройки: MigrationTool позволяет переносить многосерверные настройки ISPConfig. Целью такой миграции может быть либо другая установка с несколькими серверами, либо вы можете объединить установку с несколькими серверами в новую установку с одним сервером. MigrationTool необходимо запускать на каждом (старом) узле многосерверной установки один за другим, целевая система ISPConfig является либо главным узлом новой многосерверной установки (затем MigrationTool отобразит диалоговое окно, в котором вы можете выбрать, на каком новом узле многосерверная установка, на которую должны быть перенесены данные) или новый одиночный сервер.
Создайте удаленного пользователя в ISPConfig.
Вам нужен удаленный пользователь на целевом сервере ISPConfig.
Зайдите в Система -> Удаленный пользователь.
Нажмите кнопку Добавить нового пользователя.
Введите имя пользователя и пароль для удаленного пользователя, например. г. «Удаленный» и убедитесь, что вы отметили все флажками. Затем нажмите «Сохранить».
Если вы используете ISPConfig версии 3.1.11 на целевом сервере, отредактируйте файл /usr/local/ispconfig/security/security_settings.ini от имени пользователя root:
nano /usr/local/ispconfig/security/security_settings.ini
и измените значения ids_anon_enabled и ids_user_enabled с «да» на «нет».
....
[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
....
IDS можно будет снова включить после завершения миграции. Если вы используете ISPConfig 3.1.12 или новее, это изменение не требуется.
Затем проверьте, установлен ли модуль php-soap на целевом сервере. Если он не установлен, то установите его сейчас. В Debian и Ubuntu вы можете установить модуль PHP Soap с помощью apt:
apt-get install php-soap
Еще одним обязательным условием является то, что на целевом и исходном серверах должен быть установлен rsync. Пожалуйста, проверьте, например:
rsync --version
на обоих узлах установлен rsync. Если он не установлен, то установите пакет rsync операционной системы. Например. с:
apt-get install rsync
в Debian и Ubuntu или с помощью:
yum install rsync
на ЦентОС.
На целевом сервере может существовать файл /etc/ssh/sshd_config.d/custom.conf, созданный автоматическим установщиком ISPConfig, который препятствует работе инструмента миграции. Этот файл необходимо удалить, если он существует. Запустите эту команду на целевом сервере от имени пользователя root, чтобы удалить файл:
rm /etc/ssh/sshd_config.d/custom.conf
Все следующие шаги выполняются на исходном сервере, если не указано иное.
Загрузите и извлеките инструмент миграции.
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
Подготовьте вход без пароля (необязательно)
Во время миграции будет установлено SSH-соединение для передачи настроек и данных из источника на целевой сервер(ы). Для этого исходный сервер должен иметь возможность подключаться к целевому серверу без пароля.
Вы также можете:
- Настройте вход без пароля самостоятельно (добавьте открытый ключ источника в файлauthorized_keys целевого root).
- Или разрешите root-доступ по ssh к цели по паролю (временно). Затем инструмент миграции вызовет для вас ssh-keygen и ssh-copy-id. Это прямые системные вызовы, поэтому, если на этом этапе вам будет предложено ввести корневой пароль ssh целевого объекта, ввод НЕ будет прочитан инструментом миграции, это прямой запрос со стороны ssh-copy-id. системная команда.
Запустите миграцию (пробный прогон)
./migrate
Если вы хотите запустить инструмент на определенной версии PHP (например, PHP 7.4 в Ubuntu 22.04), используйте вместо этого следующую команду:
PHP=/usr/bin/php7.4 ./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
Мы хотим сначала запустить режим пробного прогона, поэтому вводим здесь режим «сухой».
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
Инструменту миграции необходимо знать, какую панель управления вы используете на исходном сервере. Он пытается распознать необходимый модуль на исходном сервере, поэтому обычно вы можете просто нажать ENTER.
Enter this (SOURCE) server's ip that is used for outgoing connections [192.168.10.10]: 123.123.123.123
Инструменту миграции необходимо знать, какой IP-адрес на исходном сервере используется для исходящих подключений, т.е. е. какой IP-адрес будут видеть другие серверы, когда источник подключается к ним. Инструмент пытается угадать IP-адрес, но вам может потребоваться изменить значение, например, если вы используете частную сеть.
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
Предоставьте Инструменту миграции данные удаленного пользователя, которого вы создали на целевом объекте, и подтвердите ввод нажатием «y». Затем инструмент миграции попытается подключиться к удаленному API вашей целевой системы.
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]
Инструмент миграции изменит некоторые настройки ISPConfig на целевом объекте (эти изменения не будут внесены при запуске в режиме пробного запуска) и проверит соединение с сервером MySQL. Он пытается угадать учетные данные MySQL, просматривая некоторые системные файлы, но в конечном итоге вам будет предложено ввести пароль root MySQL.
Далее вам необходимо указать общедоступный IP-адрес целевого сервера. Он будет предварительно получен из DNS, но вам, возможно, придется его настроить, особенно если вы используете одно и то же имя хоста в источнике и цели.
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
Инструмент миграции позволяет объединить несколько серверов в один целевой. При этом может случиться так, что на исходных серверах имеются конфликтующие имена пользователей, например. г. если у вас есть две базы данных с именем «testdatabase». Если вы ответите «да» на этот вопрос, то вторая база данных заменит первую. Если вы ответите «n», имя второй базы данных изменится на «testdatabase_2».
Обязательно отвечайте «y» при выполнении миграции одного сервера, поскольку в противном случае вы создадите дубликаты, если запустите инструмент миграции несколько раз в одном и том же источнике.
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]
Инструмент миграции предлагает вам пометить некоторые имена пользователей для FTP, баз данных, клиентов и т. д. как «зарезервированные». Это означает, что они не будут перезаписаны, как указано в разделе выше. Обычно вы оставляете это поле пустым, но в некоторых случаях вы можете запретить импорт имен пользователей, таких как «admin» или «administrator». Таким образом, вы можете ввести их здесь, что приведет к переименованию импортированных имен в «admin_2» и т. д.
Вопрос повторяется для разных типов сервисов (FTP, база данных, клиенты, пользователи почты).
What is the database name of your SOURCE ISPConfig 3 installation? [dbispconfig]: [ENTER]
Теперь инструмент запрашивает имя базы данных на исходном сервере, на котором хранятся данные панели управления. Пожалуйста, проверьте правильность распознанной базы данных и при необходимости измените ее.
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]
Новый инструмент миграции позволяет переносить только часть сервисов, например. г. переносите только почтовые учетные записи и пропускайте веб-сайты и т. д.
Мы хотим перенести все службы, поэтому просто оставляем поле пустым и нажимаем 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]
Для копирования данных через Интернет, почту и базу данных инструменту миграции требуется доступ по SSH без пароля к целевому серверу. Вам необходимо указать IP-адрес и порт, к которому должен подключиться источник. Если вы еще не настроили доступ без пароля, вам будет предложено ввести корневой пароль SSH целевого сервера.
Testing MySQL connection ... OK
Starting API calls.
[50/74] <Domain> processing mydomain.com
Теперь инструмент начнет создавать/обновлять все записи в целевом ISPConfig. При пробном прогоне он, конечно, ничего не изменит и не скопирует. Дождитесь завершения вызовов API.
Processing of entries done.
=============
Migration tool run completed.
Как только инструмент миграции завершит пробный прогон без ошибок, мы сможем продолжить настоящую миграцию.
Запустите миграцию
./migrate
Если вы хотите запустить инструмент на определенной версии PHP (например, PHP 7.4 в Ubuntu 22.04), используйте вместо этого следующую команду:
PHP=/usr/bin/php7.4 ./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
На этот раз мы отвечаем на запрос «мигрировать» и отвечаем на вопросы так же, как мы это делали во время пробного прогона. В инструменте будут предварительно заполнены данные, полученные при пробном прогоне, поэтому в большинстве случаев вы сможете нажать ВВОД.
Testing MySQL connection ... OK
Copying Let'sEncrypt files to target ... OK
Starting API calls.
[9/11] processing [email (web213p41)
На этот раз процесс займет немного больше времени, поскольку выполняются реальные вызовы API. Подождите, пока процесс завершится.
Processing of entries done.
Target ISPConfig job queue has 35 entries left. Waiting ..
Чтобы убедиться, что все пути созданы на целевом объекте, инструмент миграции ожидает, пока ISPConfig обработает все запросы, прежде чем продолжить.
[INFO] Target ISPConfig job queue has completed. Continuing.
[19/935] Syncing /var/www/clients/client26/web21/web to /var/www/clients/client1424/web21/
Теперь инструмент синхронизирует все пути (Интернет, почта) и копирует содержимое базы данных на целевой сервер. Этот процесс может занять некоторое время в зависимости от объема имеющихся у вас данных.
Если вы хотите выполнить фактическую синхронизацию данных на отдельном этапе, вы можете пропустить ее, запустив ./migrate --no-syncjobs вместо просто ./migrate.
Заключительные шаги
Инструмент миграции сбросит значения, которые он изменил в начале (например, клиентские префиксы).
В зависимости от панели управления исходным кодом инструмент миграции активировал модуль домена в целевой ISPConfig. Это означает, что домены можно использовать для веб-сайтов, доменов электронной почты и т. д. только в том случае, если они были предварительно назначены администратором (с помощью Клиента -> Домены). Если вы не хотите использовать модуль домена, вы можете отключить его в разделе Система -> Настройки интерфейса -> Вкладка «Домены».
Наконец, проверьте созданный файлmigrate.log на наличие записей с маркерами [ОШИБКА] или [ПРЕДУПРЕЖДЕНИЕ]. Это указывает на проблемы в процессе миграции.
Повторно синхронизируйте вашу цель
Повторная синхронизация учетных записей и настроек
Если что-то изменилось на панели управления исходным кодом после выполнения миграции, вы можете просто запустить ее повторно. Инструмент миграции обновит все записи новыми настройками с исходного сервера. И добавьте новые записи, которые были созданы за это время. Удаленные записи в источнике не будут удалены в цели!.
Повторная синхронизация данных
Если вы хотите повторно синхронизировать данные только для Интернета, почты и баз данных, вы можете запустить ./migrate --syncjobs. При этом все этапы миграции будут пропущены, а будет выполняться только синхронизация веб-сайтов, баз данных и электронной почты.
Вы также можете повторно синхронизировать только одну из служб, например. г. ./migrate --syncjobs --only=database. Это позволит пропустить повторную синхронизацию данных веб-сайта и электронной почты.
Расширенные настройки
Чтобы получить список дополнительных параметров, которые позволяют его мигрировать, например. отдельные веб-сайты, почтовые домены или клиенты, используйте опцию --help.
./migrate --help
Текущие варианты:
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!