[Sysadmins] Dovecot update plan

Max Ivanov ivanov.maxim на gmail.com
Вт Май 19 14:27:33 MSD 2009


Предлагаю обсудить с заинтересованными лицами как быть с dovecot. Я
взялся за него с одобрения прошлого maintainer  :)

Хотелось бы помимо актуальных версий иметь возможность запускать
несколько версий dovecot одновременно, для более плавных переездов. В
конечном итоге я вижу это так (описано для 1.2, для других версий
подставьте 1.1 или 1.0):

конфиги
/etc/dovecot1.2/

бинарники:
/usr/sbin/dovecot1.2
/usr/sbin/dovecotpw1.2
/usr/lib/dovecot1.2/*
/usr/libexec/dovecot1.2/*

разное:
/etc/init.d/dovecot1.2
/var/run/dovecot1.2/  (тут в том числе и auth сокеты)
/etc/control.d/facilities/dovecot1.2-auth

общие файлы
/etc/pam.d/dovecot
пользователь dovecot общий на всех
/var/lib/ssl/certs/dovecot*
/var/lib/ssl/private/dovecot*

При такой раскладке файлов можно будет поставить одновременно
несколько версий dovecot. Оно даже будет работать если в dovecot.conf
правильно выставить base_dir и правильно указать пути до создаваемых
сокетов.

Понятно, что будут и alternatives переключющие симлинки
/usr/libexec/dovecot, /var/run/dovecot на нужные версии. файла
/etc/init.d/dovecot не будет, предполагаю, что нужную версию админ
всётаки должен сам включать и останавливать. Альтернативы нужны
исключительно для того, что б MTA настроить например на
/usr/libexec/dovecot/deliver и не ломать себе голову при переезде на
новую версию.

Теперь начинаются сложности:
- как сделать апгрейд существующего dovecot (тот, что версии 1.1),
ведь нам надо перенести /etc/dovecot/ в  /etc/dovecot1.1
- как вообще делать апгрейд любой существующей инсталяции, ведь нам
надо поменять base_dir в конфиге dovecot.conf на новый путь, то же
самое относится и к  созданию socket файлов, т.к. создаваться они
должны всегда в родной для данной версии директории, а не по пути
управляемому alternatives.
Автоматом лазить в чужие конфиги я не стану, да никто и не даст :)

Готов выслушать пожелания, критику и пр. насчет этих планов.


Подробная информация о списке рассылки Sysadmins