В предыдущем посте я объяснил как я вижу работу админа. Одна из наиболее важных задач, без которых этот подход невозможен — журналирование всех операций на сервере.
Идеальный подход, когда каждое изменение на сервере сопровождается записью в журнале с датой, временем, точный описанием изменений, а также полным описанием зачем были выполнены эти изменения — существует, к сожалению, только в мечтах. Потому как работа это нудная и неинтересная тем, кто собственно способен эти изменения выполнить.
С другой стороны, чтобы через год можно было вспомнить а что собственно делалось, и зачем — журналирование нужно. Поэтому я стараюсь использовать различные средства автоматизации ведения хоть и неидеального, но все-таки журнала.
Для этой цели мною был написан syskeeper. Это достаточно простая утилита, которая в отдельный каталог на диске сохраняет разнообразную информацию, и хранит этот каталог в git-репозитории, что позволяет видеть историю изменений. К сожалению этот подход не позволяет документировать причины, однако позволяет установить сам факт.
Основное для чего создавалось — хранить список установленных пакетов (с версиями), а также разбиение диска (включая LVM разделы).
Кроме того, для списка пакетов формируется еще список «листьев» — пакетов, от которых не зависят другие пакеты, т.е. тех пакетов, которые очевидно на этой системе представляют ценность сами по себе, а не поставлены «потому что по зависимостям вытянулось».
Этот список листьев удобен еще для формирования списка пакетов для спецдистрибутивов, если понадобится в будущем установить аналогичную машину, но на более новой пакетной базе.
Ну и напомню еще раз, что syskeeper теперь работает быстро, что было основой причиной по которой ранее многие кто посмотрел на него — отказались его использовать.