Обновляем Proxmox Mail Gateway с версии 5.x до 6.0

  • Автор:

pmg-upgrade-5-to-6-000.pngЭто лето порадовало нас не только выходом нового релиза Debian, но и обновлением специализированных дистрибутивов, созданных на его основе. Буквально на днях, во вторник последней недели августа, компания Proxmox сообщила о выходе новой версии своего решения для защиты электронной почты Proxmox Mail Gateway 6.0. При этом вы можете выполнить как новую установку, так и обновить предыдущую версию. Несмотря на то, что документации по обновлению доступна на официальном сайте, мы решили выпустить собственный материал, который кроме перевода инструкции на русский язык, будет содержать наши пояснения для выполняемых действий.

Прежде всего предупредим вас - обновление на новую версию ОС - потенциально опасный процесс и потеря контроля на некоторых этапах может привести к самым нежелательным последствиям. Поэтому обновление следует выполнять либо в консоли (т.е. непосредственно подключившись к серверу), либо через SSH-терминал. В последнем случае имейте ввиду, что обрыв связи может привести к невозможности загрузить ОС в нормальном режиме и потере удаленного доступа к ней, чтобы избежать подобной ситуации воспользуйтесь командой screen.

Самым первым действием следует обновить текущую систему до актуального состояния, для этого выполните с правами суперпользователя:

apt update
apt dist-upgrade

После завершения данной операции создадим резервную копию текущей конфигурации Proxmox Mail Gateway:

pmgbackup backup

Копия создается в каталоге /var/lib/pmg/backup, советуем скопировать ее оттуда в надежное место за пределами сервера.

Изменим репозитории для работы с новой версией ОС, так как новый PMG основан на Debian 10, то выполним:

sed -i 's/stretch/buster/g' /etc/apt/sources.list

Также заменим источник в репозитории Proxmox, который доступен без подписки, если вы устанавливали продукт по нашей статье, то будет достаточно команды:

sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/pmg-no-subscription.list

В ином случае потребуется уточнить имя файла, либо заменить в нем stretch на buster вручную.

Остановим следующие службы:

systemctl stop postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel

и замаскируем их:

systemctl mask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy pmgmirror pmgtunnel

Что такое маскировка? Это операция, как и disable, выполняет отключение службы, но отключение влияет только на автозагрузку службы. Отключенная служба может быть запущена вручную, скриптом, регламентным заданием или зависящей от нее службой. Маскировка делает запуск службы полностью невозможной, как бы если указанной службы не существовало.

Еще раз обновим источники пакетов и выполним апгрейд системы:

apt update
apt dist-upgrade

Но не спешите перезагружать систему по окончании этого процесса, нам потребуется выполнить некоторые дополнительные действия. Proxmox Mail Gateway хранит данные в базе PostgreSQL, которая была обновлена с версии 9.6 до 11, поэтому нам потребуется выполнить конвертацию данных.

Прежде всего удалим новый кластер PostgreSQL, который был создан автоматически:

pg_dropcluster --stop 11 main

И выполним конвертацию существующего кластера с данными:

pg_upgradecluster -v 11 9.6 main

Затем снимем маскировку для части служб:

systemctl unmask postfix pmg-smtp-filter pmgpolicy pmgdaemon pmgproxy

И перезагрузим сервер:

reboot

После перезагрузки снимем маскировку с оставшихся служб:

systemctl unmask pmgmirror pmgtunnel

и запустим их:

systemctl start pmgmirror pmgtunnel

Наш сервер обновлен, можем проверить работу с новой версией шлюза.

В завершение удалим старые пакеты PostgreSQL:

apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6

Следует отметить, что в нашем случае пакета postgresql-contrib-9.6 не оказалось, но это не является ошибкой.

Как видим, обновить Proxmox Mail Gateway достаточно просто и если вы будете следовать инструкции, то проблем возникнуть не должно. Но все равно не забывайте про резервные копии.