Сначала удаляю пакеты, принадлежащие pnp4nagios и затем конфигурацию всех пакетов, которые были автоматически установлены для pnp4nagios.
$ sudo aptitude purge '~i pnp4nagios' $ sudo aptitude purge '~c'
Теперь нужно отменить изменения в /etc, которые были сделаны для интеграции уже установленного Nagios с pnp4nagios. Для контроля за изменениями в /etc у меня используется etckeeper, но поскольку я не помню когда и какие изменения я внес, то пробую поискать в истории изменений.
$ sudo etckeeper vcs log | grep -B3 -i pnp4nagios набор изменений: 281:1d3749d4f348 пользователь: andrey@server.home.tataranovich.com дата: Wed May 08 16:03:27 2013 +0300 сводка: Before pnp4nagios debugging. -- набор изменений: 280:e44540a69bf4 пользователь: Andrey Tataranovichдата: Wed May 08 16:02:33 2013 +0300 сводка: Installed pnp4nagios.
Итак, pnp4nagios я устанавливал весной прошлого года. Поскольку после этого уже было внесено много изменений, то просто откатить весь /etc на состояние предшествующее установке пакетов нельзя. Нужно отменить только изменения, связанные с настройкой интеграции nagios и pnp4nagios. Etckeeper всегда делает комит состояния /etc до и после работы менеджера пакетов - следовательно мне нужно найти комит, соответствующий состоянию до начала установки пакетов pnp4nagios. Для верности беру 5 ревизий, предшествующих e44540a69bf4.
$ sudo etckeeper vcs log -r e44540a69bf4~5: -l 6 набор изменений: 275:ad2066d36826 пользователь: @server.home.tataranovich.com дата: Sun May 05 06:54:28 2013 +0300 сводка: daily autocommit набор изменений: 276:15ddfe25a664 пользователь: @server.home.tataranovich.com дата: Tue May 07 06:31:12 2013 +0300 сводка: daily autocommit набор изменений: 277:a7dd8e2fa616 пользователь: @server.home.tataranovich.com дата: Wed May 08 06:42:30 2013 +0300 сводка: daily autocommit набор изменений: 278:b24e999300fe пользователь: andrey@server.home.tataranovich.com дата: Wed May 08 09:30:35 2013 +0300 сводка: saving uncommitted changes in /etc prior to apt run набор изменений: 279:6107c041a05b пользователь: andrey@server.home.tataranovich.com дата: Wed May 08 09:30:47 2013 +0300 сводка: committing changes in /etc after apt run набор изменений: 280:e44540a69bf4 пользователь: Andrey Tataranovichдата: Wed May 08 16:02:33 2013 +0300 сводка: Installed pnp4nagios.
В данном случае меня интересует b24e999300fe, который был зафиксирован перед вызовом apt. Теперь осталось получить все изменения в /etc/nagios3, сделанные после.
$ sudo etckeeper vcs diff -r b24e999300fe: /etc/nagios3 > /tmp/pnp4nagios.diff
Теперь нужно проверить diff-файл /tmp/pnp4nagios.diff - возможно туда попали лишние изменения, которые не связаны с интеграцией pnp4nagios - у меня такие были и я отредактировал файл, чтобы он содержал только нужные мне изменения. В результате получилось так:
cat /tmp/pnp4nagios.diff diff -r b24e999300fe -r 024b430644d3 nagios3/conf.d/generic-host_nagios2.cfg --- a/nagios3/conf.d/generic-host_nagios2.cfg Wed May 08 09:30:35 2013 +0300 +++ b/nagios3/conf.d/generic-host_nagios2.cfg Wed Jan 08 09:36:12 2014 +0300 @@ -15,5 +15,6 @@ notification_period 24x7 notification_options d,u,r contact_groups admins + action_url /pnp4nagios/graph?host=$HOSTNAME$ register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! } diff -r b24e999300fe -r 024b430644d3 nagios3/conf.d/generic-service_nagios2.cfg --- a/nagios3/conf.d/generic-service_nagios2.cfg Wed May 08 09:30:35 2013 +0300 +++ b/nagios3/conf.d/generic-service_nagios2.cfg Wed Jan 08 09:36:12 2014 +0300 @@ -22,5 +22,6 @@ notification_period 24x7 notification_options w,u,c,r contact_groups admins + action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$ register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! } diff -r b24e999300fe -r 024b430644d3 nagios3/nagios.cfg --- a/nagios3/nagios.cfg Wed May 08 09:30:35 2013 +0300 +++ b/nagios3/nagios.cfg Wed Jan 08 09:36:12 2014 +0300 @@ -248,6 +248,7 @@ #broker_module=/somewhere/module1.o #broker_module=/somewhere/module2.o arg1 arg2=3 debug=0 +broker_module=/usr/lib/pnp4nagios/npcdmod.o config_file=/etc/pnp4nagios/npcd.cfg @@ -832,7 +833,7 @@ # performance data. # Values: 1 = process performance data, 0 = do not process performance data -process_performance_data=0 +process_performance_data=1
Пробуем отменить этот "патч".
$ cd /etc $ sudo patch -p1 -R --dry-run < /tmp/pnp4nagios.diff patching file nagios3/conf.d/generic-host_nagios2.cfg patching file nagios3/conf.d/generic-service_nagios2.cfg patching file nagios3/nagios.cfg
Проверка завершилась успешно и теперь можно применить изменения и зафиксировать их в etckeeper.
$ sudo patch -p1 -R < /tmp/pnp4nagios.diff patching file nagios3/conf.d/generic-host_nagios2.cfg patching file nagios3/conf.d/generic-service_nagios2.cfg patching file nagios3/nagios.cfg $ sudo service nagios3 check && service nagios3 restart $ sudo etckeeper commit
Я вот смотрю на текст и думаю, а для чего это мне может пригодиться если я буду использовать систему контроля версий?! Так вот хочу вас попросить привести примеры для чего это можно использовать кроме как совместной разработки всего и вся ..., спасибо за ответ.
ОтветитьУдалитьНа подобные вопросы ответ простой - если вы не знаете зачем оно вам нужно - оно вам не нужно.
УдалитьА вот если бы вы привели пример то может и применение нашлось, ведь век живи век учись
ОтветитьУдалитьetckeeper - система отслеживания изменений в конфигурации сервера (директория /etc), использующая контроль версий. При грамотном использовании позволяет ответить на вопрос - кто, когда и для чего изменил настройки.
УдалитьПост посвящен проблеме, которую не решает etckeeper.