Lightweight configuration management toolkit which you write in python
Project description
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.
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.
a little bit (it has classes), borrows from bcfg2, but the language to manage your
configurations is python.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cifit-0.3.tar.gz
(12.3 kB
view details)
Built Distribution
cifit-0.3-py2.5.egg
(32.0 kB
view details)
File details
Details for the file cifit-0.3.tar.gz
.
File metadata
- Download URL: cifit-0.3.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3aa777e859c2db63362b75a7a2a19ab7d97ca5d32b944353dae0d43d4a377f7 |
|
MD5 | b0e85cbc961c559d5b5d9a30b3f4475d |
|
BLAKE2b-256 | 681b7ba01eac547685ceb0b331a01f56a2dd27da3000d787b70ecbc6396ac7fb |
File details
Details for the file cifit-0.3-py2.5.egg
.
File metadata
- Download URL: cifit-0.3-py2.5.egg
- Upload date:
- Size: 32.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f2544879f20a1640d024e5ff516bb34206c4ce9dc71553f22d1903320612cca |
|
MD5 | 66f73dfaa2dee529348523c193a0ceae |
|
BLAKE2b-256 | b4ff7446e7eb42bf0eeb351b9be03e4dd86566b475dd1c9e6e58a104b38c4800 |