пятница, 30 октября 2009 г.

Контроль версий конфигураций

Администрированию ... необходима
технология фиолетовых проводов


Слегка необычный вариант использования VCS (Version Control System) - контролировать изменения конфигураций ПО.
В Informix контролировать можно следующие конфигурационные файлы: onconfig.$INFORMIXSERVER и файл sqlhosts. Это именно те файлы которые администратор меняет руками и они текстовые, в отличие от конфигов некоторых других СУБД. Для конфигов помещение их в VCS автоматически означает наличие их архивной копии, причем со всеми фишками присущими VCS, а именно возможностью посмотреть когда почему (и возможно кем!) был изменен тот или иной параметр конфига. Процедура контроля версии может быть такой: правим конфиг, после этого копируем его в репозиторий VCS и коммитим, не забывая про описание изменения в комментарии. Все на самом деле очень просто и несложно. Выбор VCS в данном случае дело вкуса и привычки, тут уж кто что знает, я например считаю что лучше всего тут бы подошли Mercurial или Bazaar (только потому что я их знаю и умею с ними работать).

Как это может выглядеть в случае с тем же Mercurial:

1. Создаем каталог, например IDSvercfg. В этом каталоге создаем подкаталоги с именами экземпляров Informix
2. В каждом таком подкаталоге инициализируем репозиторий командой hg init
3. Копируем конфиги каждого сервера в соотв. каталог, затем в каждом каталоге, добавляем конфиги под контроль версий с помощью hg add, делаем hg commit и пишем комментарий что поместили конфиги данного экземпляра под контроль версий, ну или что там хотите написать
4. В случае изменения конфига копируем его в соотв. каталог, снова делаем hg commit и комментируем изменения.
5. Обнаружили что через некоторое время некоторый запрос стал работать медленнее (а может наоборо быстрее, или чекпоинты увеличились или еще что то), смотрим на историю правок конфига в VCS и возможно получаем ответ на вопрос об изменении работы системы.

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