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 может не работать.