Изменение имени хоста на сервере Zimbra

Бывают ситуации, когда необходимо сменить имя хоста на сервере Zimbra, допустим, вы сменили доменное имя с oldname.com на newname.net и, таким образом, вам необходимо перенастроить Zimbra на использование нового имени, в целом это не сложная процедура для которой имеются стандартные средства, но как всегда есть несколько тонкостей. Начать можно с того, что Zimbra практически везде использует FQDN, даже при обращении к внутренним сервисам вроде Aspell. Так что, в случае если Zimbra не может корректно разрешить указанное в настройках доменное имя, то и работать будет некорректно. Вернемся к смене имени хоста, начиная с 6-й версии Zimbra имеется специальная утилита ZmSetServerName, в wiki Zimbra процесс ее использования описан достаточно подробно, но именно в процессе использования этой утилиты могут возникнуть проблемы.

  1. Остановите все процессы Zimbra и выполните резервное копирование /opt/zimbra и всех связанных (в смысле с использованием символических ссылок) каталогов. Подробнее о создании резервной копии в Zimbra wiki раздел:Backup And Restore. Для выполнения этих процедур запуститите следующие команды от имени суперпользователя:
    • Остановка процессов Zimbra
      su - zimbra -c "zmcontrol stop"
    • Убедимся что все процессы завершились, вывод следующей команды должен быть пустым.
      ps aux | grep [z]imbra
    • Выполним копирование.
      cp -rp /opt/zimbra /opt/zimbra-backup/
      # или
      rsync -a /opt/zimbra /opt/zimbra-backup/
  2. Вы должны добавить запись с новым именем в DNS прежде чем запускать zmservername, если вы еще этого не сделали — сделайте это сейчас.
    Внимание: если текущий сервер является зеркалом «продакшн» сервера, прервите связь между тестовым и основным сервером, что бы выполнение команды не затронуло основной сервер.
    И главное с чем могут возникнуть проблемы, убедитесь что в вашем файле hosts нет записей вида

    127.0.1.1 mail.hostname.tld mail

    потому как в процессе реконфигурации запускается процесс LDAP который привязывается только в публичному IP, а все обращения в процессе реконфигурации идут только по имени, и если у вас имеется привязка FQDN имени к loopback адресу — вы получите ошибку на подобии этой:

    Starting ldap…done.
    Unable to contact ldap://mail.oldhost.tld:389: Connection refused
    Unable to contact ldap://mail.oldhost.tld:389: Connection refused

    Таким образом ваш файл hosts до реконфигурации должен выглядеть примерно так:

    127.0.0.1    localhost
    111.222.333.444   mail.oldhost.tld mail
    111.222.333.444   mail.newhost.tld
  3. Если вы уже получили вышеприведенную ошибку
    • остановите сервисы Zimbra
      su - zimbra -c "zmcontrol stop"
    • «добейте» оставшиеся процессы
      ps aux | grep [z]imbra | awk '{print $2}' | xargs kill -9
    • удалите папку с конфигами
      rm -rf /opt/zimbra/conf/
    • скопируйте папку с конфигами из резервной копии
      cp -rp /opt/zimbra-backup/conf/ /opt/zimbra/
    • запустите Zimbra
      su - zimbra -c "zmcontrol start"
    • выполните шаги из предыдущего пункта, и переходите к смене имени хоста
  4. Наконец, для смены имени выполните следующие команды:
    su - zimbra -c "/opt/zimbra/libexec/zmsetservername -n %newservername%"
  5. Настройте ОС на использование нового имени хоста. Очень важно сделать это после 3-го шага.
  6. Перезагрузитесь. Хотя на самом деле это не обязательно, обычно достаточно просто запустить Zimbra командой
    su - zimbra -c "zmcontrol start"
  7. Внимание: если вы используете многосерверную конфигурацию, убедитесь что все отсылки к старому имени были заменены на новое имя на всех серверах, после этого перезапустите сервисы на всех серверах.
  8. Используйте zmlocalconfig и zmprov чтоб вручную проверить основные настройки, настройки сервера, пользователей и т.д. на предмет «следов» старого имени.
    zmprov gacf | grep oldhostname
    zmprov gs `zmhostname` | grep oldhostname
    zmlocalconfig | grep oldhostname
  9. Удалите записи со старым именем из DNS.
    Так может выглядеть ваш файл hosts после реконфигурации:

    127.0.0.1  localhost
    111.222.333.444  mail.newhost.tld mail

После изменения имени могут возникнуть ошибки связанные с сертификатами. Скорее всего, вам надо установить новые сертификаты, содержащие новое имя сервера. Более подробную информацию по работе с сертификатами можно получить в официальной вики Administration Console and CLI Certificate Tools. Информацию по решению проблем связанных с сертификатами можно поискать в разделе Category:Troubleshooting Certificates.
NB после установки сертификатов через web интерфейс вам может понадобиться установить новый CA, иначе вы будете получать ошибки при работе, к примеру, с командой zmprov сделать это можно выполнив от пользователя root команду:

/opt/zimbra/bin/zmcertmgr deployca

Если вы сменили имя Zimbra сервера, то весьма вероятно вам надо сменить имя почтового домена, сделать это несложно с помощью команды

zmprov -l rd [olddomain.com] [newdomain.com]

подробнее Renaming a Domain

Материалы:

Похожие публикации
  1. Спасибо, очень помогло!

  2. Не работает. После

    su - zimbra -c "/opt/zimbra/libexec/zmsetservername -n %newservername%" он пытается стартануть ldap на старом имени сервера.

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


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>