Назад | Перейти на главную страницу

Одновременное обновление Zimbra и вашей ОС

Недавно у меня возникли проблемы с обновлением Zimbra, одновременно с обновлением моей ОС. Чтобы быть более конкретным: я хотел обновить Zimbra Open Source Edition с 8.0.5 до 8.6 и в то же время обновить Ubuntu Server с 12.04 до 14.04. Проблема, с которой я столкнулся, заключалась в том, что я не мог заставить его работать, Zimbra выдавала множество исключений, связанных с Perl, и, поскольку форум Zimbra не очень коммуникативен, мне пришлось перемотать свою резервную копию, чтобы снова работать после выходных . Итак, каков правильный процесс?

Я нашел руководство на сайте Zimbra, которое было в порядке, но не хватало некоторых частей (https://wiki.zimbra.com/wiki/Ubuntu_Upgrades). В конце концов я понял это, но почувствовал необходимость записать это для использования в будущем для меня и других. В моем случае я использовал установку с одним сервером с Zimbra Open Source Edition, некоторые из них могут не относиться к другим экземплярам.

Общие вещи

1. Используйте виртуальную машину и тома LVM

В целом рекомендуется установить Zimbra на виртуальную машину и использовать LVM или другой метод, поддерживающий моментальные снимки. Таким образом, вы можете создавать снимки, и если что-то пойдет не так, вы просто откатитесь к своему снимку.

Моментальные снимки можно использовать не только для создания дополнительной и простой в использовании точки отката на случай, если обновление / обновление пойдет не так, но и для облегчения резервного копирования:

  1. остановить службу зимбры
  2. создать моментальный снимок
  3. смонтировать снимок на хосте
  4. резервное копирование данных
  5. размонтировать снимок
  6. удалить снимок

Примечание. Снимки состояния следует использовать в дополнение к резервным копиям, а не вместо них.

2. Резервные копии

Создавайте полную резервную копию всей папки / opt / zimbra и ВСЕГДА храните копию установщика Zimbra для той версии и ОС, которые вы используете. В случае сбоя вашего сервера вы можете восстановить всю установку Zimbra с помощью папки и установщика.

3. Своевременно обновляйте установку.

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

4. Используйте экран

Если вы администрируете свой сервер через SSH, убедитесь, что вы используете screen для всех обновлений. Если ваше соединение будет прервано, это не испортит вам день (если сеанс терминала закрывается, он завершает все запущенные команды). С экраном вы просто возобновите прерванный сеанс с screen -r.

Обновление

А вот и сложная часть. В моем случае я облажался и начал с обновления Ubuntu 12.04 до Ubuntu 14.04. Затем я попытался установить Zimbra 8.6 поверх моей текущей версии 8.0.5 и поджарил свою установку, потому что стал дерзким и проигнорировал проверку версии.

Хитрость в том, что вам нужно установить точный та же версия Zimbra на вашей обновленной ОС, что и на старой. В моем случае не было даже установщика для Ubuntu 14.04, поэтому в основном я мог только откатиться к своему снимку и начать заново.

В этом примере я использую свою конфигурацию. Опять же: я хотел обновить Ubuntu 12.04 до 14.04 и Zimbra 8.0.5 до 8.6.

1. Убедитесь, что вы используете одну и ту же версию Zimbra как для старой, так и для новой ОС.

В моем случае не было установщика Zimbra 8.0.5 на Ubuntu 14.04, но был установщик 8.6 для Ubuntu 12.04. Не имеет значения, обновите ли вы сначала Zimbra или свою ОС, но это делает неважно, что вы устанавливаете одну и ту же версию Zimbra как на старую, так и на новую ОС. Вы можете выполнить обновление после того, как установили старую версию Zimbra на новую ОС, но вы НЕ МОЖЕТ обновите свою ОС и Zimbra одновременно.

2. Выполните обновление до Zimbra 8.6 в Ubuntu 12.04.

Просто скачайте архив 8.6, распакуйте и установите. Вам не нужно сначала останавливать zimbra, установщик сделает это автоматически.

screen
wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU12_64.20141215195814.tgz
tar xzf zcs-8.6.0_GA_1153.UBUNTU12_64.20141215195814.tgz
cd zcs-8.6.0_GA_1153.UBUNTU12_64.20141215195814
sudo ./install.sh

Следуй инструкциям. Вам не нужно выполнять проверку целостности, если вас об этом просят, но это неплохая идея. Это может занять некоторое время, но убедитесь, что ваша база данных не повреждена. После установки убедитесь, что все работает нормально.

3. Обновите Ubuntu с 12.04 до 14.04.

Остановите zimbra перед запуском обновления и убедитесь, что все службы остановлены.

su - zimbra
zmcontrol stop
zmcontrol status
exit

Обновите и обновите, а затем начните обновление выпуска:

sudo apt-get update
sudo apt-get ugprade
sudo do-release-upgrade

Во время обновления Ubuntu несколько раз спросит вас, хотите ли вы сохранить текущую конфигурацию. ВСЕГДА ВСЕГДА ВСЕГДА ДЕЛАЙТЕ ЭТО или выберите ответ по умолчанию (N)

Configuration file `/etc/security/limits.conf’
    ==> Modified (by you or by a script) since installation.
    ==> Package distributor has shipped an updated version.
    What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer’s version
    N or O  : keep your currently-installed version
    D     : show the differences between the versions
    Z     : start a shell to examine the situation
    The default action is to keep your current version.
    *** limits.conf (Y/I/N/O/D/Z) [default=N] ? 

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

4. После обновления Ubuntu

Zimbra теперь не работает, не паникуйте. Это связано с тем, что у вас есть Zimbra 8.6 для Ubuntu 12.04, которая не работает с Ubuntu 14.04. Если вы этого еще не сделали, загрузите тем же Версия Zimbra (в данном случае 8.6) у вас была в старой системе, но на этот раз для новой версии:

wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz
tar xzf zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz

5. Установите Zimbra 8.6 для Ubuntu 14.04.

Вам необходимо установить все зависимости для вашей установки Zimbra, в моем случае это была libperl5.18, но если она у вас еще не установлена, она попросит разархивировать и т. Д. Не волнуйтесь, установщик сообщит вам, что это такое. отсутствует, просто выполните следующие действия, и если программа установки прервется из-за отсутствия зависимостей, просто установите их и продолжайте. На этот раз вам нужно запустить установщик с параметром -s и Пропустить проверку целостности.

Параметр -s означает программное обеспечение; это означает, что программа установки не обновляет ваши данные, а просто устанавливает новое программное обеспечение. Вам нужно новое программное обеспечение для обновления существующих данных (почтового хранилища, настроек и т. Д.). Если вы не укажете его, установщик отменит работу с ошибкой. Прежде чем продолжить, убедитесь, что вы снова используете правильный установщик для своей версии. Вы видите версию внутри имени папки: zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.

cd zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116
sudo ./install.sh -s

Важный: Пропустить проверку целостности, вы можете сделать это позже вручную после обновления данных.

Do you want to verify message store database integrity? [N]

Продолжайте и ответьте Y, если вас спросят, хотите ли вы обновить. После завершения установки снова запустите тот же установщик, на этот раз без опции -s:

sudo install.sh

Примечание. Вы можете запустить проверку целостности сейчас или пропустить ее и выполнить позже.

Следуйте инструкциям, как и раньше. Теперь у вас должна быть рабочая Zimbra 8.6 на Ubuntu 14.04.

Коротко

Это не работает

Zimbra 8.0.5 в Ubuntu 12.04 -> Обновите Ubuntu до 14.04 и установите Zimbra 8.6 в Ubuntu 14.04

Это работает

Zimbra 8.0.5 в Ubuntu 12.04 -> Zimbra 8.6_for_12_04 в Ubuntu 12.04 -> Обновление до Ubuntu 14.04 -> Установить Zimbra 8.6_for_14_04 в Ubuntu 14.04

Я почувствовал необходимость ответить после того, как потратил два дня на то, чтобы все это заработало, выполняя многочисленные восстановления из-за проблем с обновлением.

В моей ситуации это было обновление Ubuntu 12 (Zimbra 8.6) -> Ubuntu 16 (Zimbra 8.8). К сожалению, инструкции с веб-сайта Zimbra (/opt/zimbra/conf/localconfig.xml), а сообщение от OP привело к следующей ошибке LDAP после выполнения задачи ./install -s на производственной версии zimbra:

ldap_url и ldap_master_url не могут совпадать на реплике ldap

В результате метод, который сработал для меня, заключается в выполнении предложения Лабси, которое выполняется во время do-release-upgrade. Чтобы добавить более подробную информацию, для других людей, которые могут быть сбиты с толку, вы получите следующее сообщение в процессе обновления ОС Ubuntu

Updating repository information

Third party sources disabled 

Some third party entries in your sources.list were disabled. You can 
re-enable them after the upgrade with the 'software-properties' tool 
or your package manager. 

В это время откройте сеанс SSH на сервере и отредактируйте файл /etc/apt/sources.list.d/zimbra.list и удалите # с начала строк, чтобы пакеты zimbra обновлялись как часть процесса обновления.

Выполните обновление ОС в обычном режиме и согласитесь со всеми сообщениями по умолчанию. После завершения обновления ОС вы можете перезагрузить сервер. Вы узнаете, что все прошло хорошо, если службы Zimbra запустятся в процессе загрузки.

Таким образом, вам не нужно бежать ./install -s на новой ОС вообще.

Для тех, кто пришел сюда из-за следующего сообщения: ldap_url и ldap_master_url не могут совпадать на реплике ldap, причина появления ошибки в том, что ./install -s удаляет конфигурацию LDAP, хранящуюся в /opt/zimbra/conf/localconfig.xml. Если у вас нет резервной копии этого файла, вам придется выполнить восстановление из резервной копии / снимка и начать процесс обновления с самого начала.

Шаг 3. Обновите Ubuntu с 12.04 до 14.04.

Здесь важно ПРИОСТАНОВИТЬ, когда процесс обновления сообщает вам об удалении несовместимых репозиториев! Подождите, прежде чем продолжить, откройте другой сеанс SSH на сервере и отредактируйте файл:

/etc/apt/sources.list.d/zimbra.list

Удалите там хэши # из 2 или 3 строк, которые были добавлены do-release-upgrade.

Сохраните файл и вернитесь к исходному сеансу SSH, где теперь вы можете продолжить процесс обновления. При этом обновлять НЕ УДАЛЯТЬ, А А ОБНОВЛЯТЬ все пакеты Zimbra.