Перейти к основному содержимому

Перенос пользователей между FASTPANEL

Введение

В этой статье описан процесс переноса учетных записей пользователей и связанных с ними данных (веб-сайтов, баз данных, электронной почты и т. д.) с одного сервера FASTPANEL на другой с помощью встроенной утилиты миграции.

Ключевые термины

  • Исходный сервер - сервер, с которого переносятся данные.
  • Целевой сервер - сервер, на который переносятся данные.

Важные примечания

  • По умолчанию миграция корректно работает только для сайтов со стандартной конфигурацией FASTPANEL.

  • Сайты с ручными изменениями конфигурации можно перенести только при использовании флага -m для сопоставления IP-адресов.

  • Если зашифрованный пароль владельца базы данных недоступен, база данных не будет перенесена.

  • Если веб-сайт не переносится, связанные с ним базы данных также не будут перенесены.

  • Можно переносить только локальные базы данных.

Процесс миграции

Подключение

Целевой сервер подключается к исходному серверу по SSH. При первом подключении целевой сервер устанавливает SSH-ключ на исходный сервер (либо заранее предоставленный, либо сгенерированный из пароля).

Этапы миграции

  • Установка модуля
  • Сбор информации о переносимых объектах
  • Создание пользователей
  • Перенос SSL-сертификатов
  • Создание веб-сайтов, FTP-аккаунтов, почтовых доменов и почтовых аккаунтов
  • Создание баз данных и пользователей баз данных
  • Перенос файлов веб-сайтов и почтовых ящиков
  • Перенос заданий cron

Передача файлов выполняется с помощью rsync. Базы данных переносятся путем создания дампа через SSH-туннель.

Команда для запуска миграции

Команда выполняется на целевом сервере пользователем с правами root:

/usr/local/fastpanel2/fastpanel transfer run [SSH_PARAMETERS] [IP_PARAMETERS] [ADDITIONAL_OPTIONS]

Флаги командной строки

SSH-подключение

  • --remote_host="SOURCE_IP" - IP-адрес исходного сервера.
  • --remote_port="SSH_PORT" - порт SSH.
  • --remote_username="SSH_USER" - пользователь (должен быть root).
  • --remote_password="USER_PASSWORD" - пароль указанного SSH-пользователя.
  • --ssh_key_path="PATH_TO_KEY" - путь к приватному SSH-ключу на целевом сервере для подключения к исходному серверу. Если используется ключ, пароль (--remote_password) не требуется.

IP-адреса

Для управления IP-адресами сайтов во время переноса необходимо использовать только один из следующих флагов. Флаг -m имеет приоритет.

  • -i "IP_ADDRESS_ON_DESTINATION" - назначает указанный IP-адрес всем перенесенным сайтам на целевом сервере. Чтобы указать несколько IP-адресов (например, если на исходном сервере их было несколько), повторите флаг для каждого исходного IP-адреса, который нужно перенести.

  • -m "SOURCE_IP,DESTINATION_IP" - рекомендуемый способ. Устанавливает прямое сопоставление: все сайты, использующие SOURCE_IP на исходном сервере, будут использовать DESTINATION_IP на целевом сервере. Этот флаг можно указывать несколько раз для разных пар IP. Обязательно для переноса сайтов с ручными изменениями конфигурации, так как позволяет корректно заменить IP-адреса в директивах listen.

Дополнительные настройки

  • --users="USER_LIST" - переносит только указанных пользователей (через запятую). Если не указано, переносятся все пользователи.
  • --disable_disk_quota - отключает перенос дисковых квот пользователей.
  • --with_user_data - включает копирование всего содержимого домашних каталогов пользователей (кроме подкаталога logs/). Используйте с осторожностью, так как это может значительно увеличить время переноса и объем передаваемых данных.
  • --only_data - переносит только данные (файлы веб-сайтов, почтовые файлы, дампы баз данных). Полезно, если начальная миграция структуры (пользователи, сайты, БД и т. д.) прошла успешно, но на этапе копирования файлов или дампов произошли ошибки. Позволяет повторно запустить только часть, связанную с копированием данных.
  • --transfer_timeout - устанавливает тайм-аут операции (по умолчанию 60 минут).

Пример команды

Перенос всех пользователей с сервера 11.22.33.44 на текущий сервер. На старом сервере сайты использовали IP-адреса 11.22.33.44 и 11.22.33.55; на новом сервере они должны использовать 99.88.77.66 и 99.88.77.67 соответственно. Подключение по SSH с использованием пароля.

/usr/local/fastpanel2/fastpanel transfer run \
--remote_host=11.22.33.44 \
--remote_username=root \
--remote_password=YourSourceRootPassword \
-m 11.22.33.44,99.88.77.66 \
-m 11.22.33.55,99.88.77.67

Возможные проблемы и типы ошибок

Ошибка в журнале миграции не всегда указывает на критическую проблему, но может указывать на причину, по которой конкретный объект не был перенесен.

  • Конфликты: возникают, когда перенос объекта невозможен из-за текущей конфигурации целевого сервера (например, пользователь или сайт с таким же именем уже существует) или если конфигурация сайта на исходном сервере неизвестна панели (например, из-за значительных ручных изменений).

  • Отсутствует сохраненный пароль: как упоминалось ранее, пользователи баз данных MySQL без сохраненного пароля в FASTPANEL на исходном сервере не могут быть перенесены.

  • Ручные настройки и IP-адреса: если сайт на исходном сервере имеет ручные изменения конфигурации веб-сервера и во время миграции для сопоставления его IP-адреса не используется флаг -m, такой сайт не будет перенесен, потому что панель не знает, какой IP-адрес указать в конфигурации на целевом сервере.