Migration

Внимание

Данное руководство предполагает, что вы намерены перенести существующий сервер animails (источник) на совершенно новый, пустой сервер (цель). Оно не заботится о сохранении каких-либо существующих данных на целевом сервере и удалит всё содержимое /var/lib/docker/volumes, а следовательно, и любые Docker-тома, которые вы, возможно, уже настроили.

Примечание

В качестве альтернативы вы можете использовать скрипт ./helper-scripts/backup_and_restore.sh, чтобы создать полную резервную копию на исходной машине, затем установить animails на целевой машине как обычно, скопировать ваш animails.conf и использовать тот же скрипт для восстановления резервной копии на целевой машине.

1. Следуйте руководству по установке, чтобы установить Docker и Compose.

2. Остановите Docker и убедитесь, что он остановлен:

systemctl stop docker.service
systemctl status docker.service

3. Выполните следующие команды на исходной машине (обязательно добавьте косую черту в конце первого параметра пути, как показано ниже!) — ВНИМАНИЕ: Эта команда удалит всё, что уже может находиться в /var/lib/docker/volumes на целевой машине:

rsync -aHhP --numeric-ids --delete /opt/animails/ root@target-machine.example.com:/opt/animails
rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.example.com:/var/lib/docker/volumes
rsync -aHhP --numeric-ids --delete /opt/animails/ root@target-machine.example.com:/opt/animails
rsync -aHhP --numeric-ids --delete --exclude '*rspamd-vol-1' /var/lib/docker/volumes/ root@target-machine.example.com:/var/lib/docker/volumes

Внимание

Пожалуйста, следуйте инструкциям для соответствующего случая использования, так как том rspamd-vol-1 должен быть исключен при миграции на другую архитектуру, поскольку он содержит несовместимые файлы кэша hyperscan, которые приводят к сбоям и последующей невозможности запуска Rspamd при смене платформы. Файлы кэша hyperscan автоматически регенерируются при перезапуске Rspamd, если они отсутствуют.

4. Выключите animails и остановите Docker на исходной машине.

cd /opt/animails
docker compose down
systemctl stop docker.service
cd /opt/animails
docker-compose down
systemctl stop docker.service

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

6. Перейдите на целевую машину и запустите Docker.

systemctl start docker.service

7. Теперь скачайте Docker-образы animails на целевой машине.

cd /opt/animails
docker compose pull
cd /opt/animails
docker-compose pull

8. Запустите весь стек animails, и на этом всё!

docker compose up -d
docker-compose up -d

9. Наконец, измените настройки DNS, чтобы они указывали на целевой сервер. Также проверьте переменную SNAT_TO_SOURCE в файле animails.conf, если вы изменили свой публичный IP-адрес, иначе SOGo может не работать.