skip to navigation
skip to content

cifit 0.4.post5-19272271c92e-20110127

Lightweight configuration management toolkit which you write in python

Downloads ↓

cifit is a lightweight configuration management toolkit, it patterns itself off of cfengine
  a little bit (it has classes), borrows from bcfg2, but the language to manage your
  configurations is python.


BUILD:
        You need mercurial, setuptools, and python of course.
        You also need hgdistver:
        https://bitbucket.org/RonnyPfannschmidt/hgdistver/overview



Currently cifit only is tested against OSX (partly) and Debian & Ubuntu (systems with apt installed). Everything here should work or be extensible against any posix compliant box you can get python on.  it *could* be made to work on windows, patches accepted.

see docs/ for documentation.
see examples/ for a few rudimentary examples.

The idea behind this code is that you write a config file (.cft) that is in python, but you only run the code thru cifit.

Doing this gives you a bunch of built-ins that make managing systems easier.

Normally I run cifit from crontab every 5 minutes.

You should put your configs in a Version Control system (say subversion or git)  then it's also easy to update configs:

cifit automatically puts the current directory to the basename of the .cft file that cifit runs, so to do a svn update:

files.run('svn update')

it's easy to manage your system or pear or python packages:

packages = ['apache2','ssh','php5']
for p in packages:
        pkg.installPackage(p)

it's easy to change or update your files: (on multiple runs it will NOT append it twice).
        files.append('/etc/issue',['This system is managed by cifit'])

It's easy to use sed like replacements on a file.
for example to turn magic_quotes off:
        files.sub("/etc/php5/apache2/php.ini",["/magic_quotes_gpc = On/magic_quotes_gpc = Off/"])

It's easy to keep apache running:
        if not procs.checkService('apache2'):
                procs.startService('apache2')

Why yet another Configuration Management Engine?

I love python. I hate XML, I love the ideas behind cfengine, but I can't
understand the magic behind it to actually do something useful. I understand python, so I write my configs in python.
 
File Type Py Version Uploaded on Size # downloads
cifit-0.4.post5-19272271c92e-20110127.tar.gz (md5) Source 2011-01-27 15KB 336
cifit-0.4.post5_19272271c92e_20110127-py2.5.egg (md5) Python Egg 2.5 2011-01-27 41KB 354