Перенос Webmin и Virtualmin с хостингом на другую машину

    3 минуты

Расскажу свой опыт переноса домашнего сервера на другую машину. Предыстория. Решил я обновиться до последней версии ОС и связки Asterisk — FreePBX, но вариант обычного обновления ядра через терминал меня не особо привлекал в силу непредсказуемости последствий. Учитывая тот факт, что на сервере крутятся всего 7 доменов с 5-тью поддоменами и докер с контейнерами, решил перенести их вручную.

И так, что мы имеем:

  • Webmin и Virtualmin в качестве панели управления ОС и хостингом;
  • VPN сервер;
  • Сервер IT-телефонии Asterisk с панелью управления FreePBX;
  • Почтовая связка Postfix — Dovecot
  • Хосты

Это тот набор, который хотелось бы перенести без потерь.

Эксперимент начал с виртуальной машины VirtualBox с предварительно установленной туда Ubuntu 24.04.

Установка серверов

1. Устанавливаем Webmin и Virtualmin согласно нашей инструкции. Запускаем его, настройки Мастера настроек прогоняем по умолчанию. Если хотите использовать ClamAV Virus Scanning Server (антивирус для сканирования почты), то введите следующую команду:

cd /var/lib/clamav/; wget https://www.danami.com/hotfix/main.cvd; wget https://www.danami.com/hotfix/daily.cld; chown clamav:clamav main.cvd; chown clamav:clamav daily.cld; systemctl start clamav-daemon; systemctl status clamav-daemon

2. Сразу установим нужные нам версии php и зададим 8.2 по умолчанию (на ней у меня будет работать FreePBX).

apt install software-properties-common ca-certificates lsb-release apt-transport-https -y; LC_ALL=C.UTF-8; add-apt-repository ppa:ondrej/php; apt install php8.2-fpm php8.2-bcmath php8.2-gd php8.2-mbstring php8.2-mysql php-pear php8.2-snmp php8.2-zip php8.2-curl php8.2-xml php8.2-intl php8.2-common php8.2-cli -y; php -v; update-alternatives --config php

3. Если выполняли авторезервирование хостов на старом сервере, то используйте для переноса настроек Virtualmin файл virtualmin.tar.gz с диска, предварительно скаченный из директории сохранения резервных копий старого сервера.

Для этого переходим во вкладке Virtualmin → Резервное копирование и восстановление → Восстановить Скопировать. Обязательно отмечаем все галки в Настройки Virtualmin для восстановления. В Источник восстановления выбираем Загрузить на сервер и указываем файл копии Virtualmin.

В следующем окне жмём «Восстановить»

В итоге мы импортировали все настройки старого сервера.

4. Хосты мы будем переносить не файлами, а напрямую со старого сервера. для этого на нём переходим во вкладку Virtualmin выбираем из списка сверху домен, затем Конфигурация сервера → Передача виртуального сервера.

Здесь мы указываем IP нового сервера, выбираем «Вебмин RPC», вводим логин и пароль основного пользователя на новом сервере и жмём «Передача сейчас». Дожидаемся окончания передачи, выбираем следующий домен и повторяем процесс.

5. Проверьте валидность DNS-записей на новом сервере. Замечал случаи, когда в записях типа A вместо внешнего IP стоял IP локальной сети. Исправьте!

6. Проверка почтовых аккаунтов. Отправьте письма пользователям на вашем сервере, убедитесь, что проблем с отправкой и получением не возникнет. Если почта внутри сервера ходит исправно, попробуйте отправьте себе на другие почтовые сервера (Mail.ru, Gmail.com, Yandex.ru).

Имейте ввиду, что после переноса хостов у них сменится ключ DKIM, так что придётся обновить его в DNS серверах на всех доменах.

7. Проверьте работоспособность сайтов хостеров, так как возникла проблема с паролями пользователей в MariaDB. Пришлось через phpmyadmin пройтись по ним и указать пароли вручную. Это будет реальной проблемой, если на сервере много хостов.

Думаю, после прохождения всех этих шагов, перенос будет завершён. Если что-то замечу, обязательно тут дополню.

Оставьте комментарий