Коротко о CFengine
Это первая попытка автоматизации централизованного конфигурирования Unix подобных операционных систем. Проект развивается с 1993 г.
В настоящее время актуальна Cfengine 3 в двух редакциях лицензирования:
Коммерческая версия стартовала в 2009 как autonomic configuration management tool.
About Cfengine
Cfengine is an automated suite of programs for configuring and maintaining Unix-like computers. It has been used on computing arrays of between 1 and 20,000 computers since 1993 by a wide range of organizations. Cfengine is supported by active research and was the first autonomic, hands-free management system for Unix-like operating systems. Cfengine is an autonomic maintenance system not merely a change management roll-out tool. Cfengine has a history of security and adaptability.
Можно долго рассказывать о возможностях и перспективах данного направления. Ленивость администратора основная предпосылка идея ее реализации. Возьмем реальную ситуацию с администрированием каскадного прокси squid. Исходные данные:
hostname Hash Multiplier Factor Actual proxy1.ru 9acf115a 1.000000 0.200000 0.069234 proxy2.ru 470bd587 1.000000 0.200000 0.467996 proxy3.ru c70ae388 1.000000 0.200000 0.021860 proxy4.ru b4019e9c 1.000000 0.200000 0.363412 proxy5.ru 2045610f 1.000000 0.200000 0.077499
Да проще настроить unison ,rsync и другие программы но это не лучший вариант для администрирования . В последствии обязательно возникнет необходимость в изменений владельцев, перезапуск процессов и многое другое…
Ставим и настраивем subversion. Почему он :
Особой разницы нет можно разделить по разным серверам cfengine и svn или использовать уже существующий svn. Установка очень простая и понятная относительно работы с SVN. Ставим его и все остальное.
apt-get install svn, websvn, cfengine, libapache2-svn, apache2 , apache2-mpm-prefork
Использовать или нет родной протокол svn на ваше усмотрение особого смысла в этом нет. Https подойдет в любом варианте на нем и остановимся.
Для начала создадим хранилище…..
Данная схема использования cfengine & svn (subversion) в течении 3 месяцев находилась в режиме тестирования. Почему так долго !? Вопрос не столько технический скорее организационный. Донести и приять данную конструкцию требуется время. Как показала практика, были вопросы по настройке SVN и работе с ним. Не думаю, что данный аспект дополнительно к знаниям конфигураций будет лишним. Subversion - достаточно простое и полезное средство для организации не только своей работы но и коллективной. Дополнительный web доступ websvn позволяет сделать процесса изменений более наглядным и «прозрачным» для руководства. Защитится от всех возможных ситуаций не возможно, но от «шальных ручек» - да. Все изменения сделанные «очень умными админами» не через SVN в течении 5 минут возвращаются с исходное состояние.
cron (engine)
# */15 * * * * /etc/cfengine/cron_cf.sh > /dev/null 2>&1
#! /bin/sh #/etc/cfengine/cron_cf.sh svn update /etc/cfengine/ svn update /var/lib/cfengine2/masterfiles/inputs/ sleep 4 /etc/init.d/cfengine2 restart