[Sysadmins] Способы конфигурации модулей в новой версии apache2
Avramenko Andrew
=?iso-8859-1?q?liksx_=CE=C1_mail=2Eru?=
Ср Апр 4 16:46:02 MSD 2007
Коллеги, у нас возник вопрос как лучше сделать способ конфигурации
apache, выношу на всеобщее обсуджение.
На данный момент это выполнено таким образом:
Варианты включения модуля:
1. Быстрый:
#/usr/sbin/a2enmod dir
Возможно отключение при выполнении /usr/sbin/a2chkconfig, если
требование отключить его будет присутствовать в каком либо из
/etc/httpd2/conf/mods-start.d/*.conf (a2chkconfig может вызываться при
установке/обновлении/удалении связанных с apache2 пакетов).
2. Надёжный:
#'еcho "dir=yes" >> 900-local.conf'
#/usr/sbin/a2chkconfig
Лично мое мнение - это попытка нагородить сверх нормы и предлагаю пойти
по пути стандартной загрузки сервисов в Linux - там тоже реализованы
приоритеты загрузки, но там все делается одной командой и нет никаких
конфигурационных файлов.
Т.е. команда a2chkconfig будет просто создавать символические ссылки и
все и отойти от конфигурационных файлов, поскольку я так и не увидел в
них никакого смысла - за зависимости модулей они не отвечают, в
дефолтном конфиге не увидел никаких других параметров кроме как простого
запуска модулей, у каждого модуля при необходимости есть свой конфиг.
Зачем они тогда?
======================================================================
Avramenko Andrew пишет:
> Aleksey Avdeev пишет:
>
>> Avramenko Andrew пишет:
>>
>>> У нас получается странная картина - если выполнить a2dismod, модуль
>>> отключается, но при следующим запуске a2chkconfig модуль опять будет
>>> подгружаться.
>>
>>
>> Да. И это позволяет легко вернуться к зафиксированной конфигурации.
>> Если по условиям задачи требуется зафиксировать включение/отключение
>> чего либо -- это желательно делать через *-start.d/999-local.conf,
>> который будет иметь максимальный приоритет (за счёт своего номера).
>>
>>> Может быть тогда a2dismod/a2enmod должны сами править
>>> *-start.d/*.conf?
>>
>>
>> Нет.
>>
>> Основной смысл в *-start.d/*.conf -- то что они не правятся системными
>> средствами (идея: на *-start.d/*.conf идущие в составе пакета выставлять
>> 444). Это позволяет зафиксировать конфигурацию.
>>
>> Линки же в *-enabled/ -- обеспечивают оперативное управление.
>>
>>> Чем вообще a2chkconfig лучше a2enmod/a2dismod? Почему не взять
>>> существующую схему linux (имею в виду /etc/init.d и утилиту chkconfig,
>>> она ведь не держит никаких конфигов? ).
>>
>>
>> В текущей реализации данной схемы а) отсутствует возможность учитывать
>> зависимости между сервисами (на уровне самой схемы) и б) -- нет
>> возможности отличить настройки заданные автоматически (при установке
>> пакета, например) от сделанного руками.
>>
>
> Представьте ситуацию, когда пользователь ставит apache, настраивает его,
> выключает ненужные ему модули - делает это a2dismod'ом. Проходит месяц
> и человеку нужно поставить какой-нить mod_php, а тот сам в %post взял и
> вызвал a2chkconfig, который в свою очередь отменил все изменения,
> сделанные пользователем до этого.
>
> Это разве правильно?
Не совсем: модуль будет отключён _только_ если требование отключить
его будет в каком либо из /etc/httpd2/conf/mods-start.d/*.conf.
Остальное -- верно. И такое поведение отражено в RRADME.ALT. Цитирую:
<cite>
Варианты включения модуля:
1. Быстрый:
$ sudo -H /usr/sbin/a2enmod dir
Возможно отключение при выполнении /usr/sbin/a2chkconfig, если
требование отключить его будет присутствовать в каком либо из
/etc/httpd2/conf/mods-start.d/*.conf (a2chkconfig может вызываться при
установке/обновлении/удалении связанных с apache2 пакетов).
2. Надёжный:
$ sudo -H sh -с 'еcho "dir=yes" >> 900-local.conf'
$ sudo -H /usr/sbin/a2chkconfig
</cite>
Если вы предложите другой вариант _явно_ разграничит части
конфигурации сделанные мантейнирами и админом -- готов рассмотреть.
PS: Думаю стоит перенести дискуссию куда нибудь в
devel@/sisyphus@/sysadmins@ (на ваш выбор): желательно более широкое
обсуждение по данному вопросу.
--
С уважением. Алексей.
Подробная информация о списке рассылки Sysadmins