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.
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.
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.
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
Built Distribution
File details
Details for the file cifit-0.4.post5-19272271c92e-20110127.tar.gz
.
File metadata
- Download URL: cifit-0.4.post5-19272271c92e-20110127.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 191b6f16cb46dee6d4511c0a3f53d8873e8ba6aac4a483fbf6f164984ad8fe6c |
|
MD5 | 64d6cad17c09646df5fa247e54091bd8 |
|
BLAKE2b-256 | 0ecfd4d241efc0a6ffac15c3cd8f50aefc5e809b956aa0bf0b0988a89203b25d |
File details
Details for the file cifit-0.4.post5_19272271c92e_20110127-py2.5.egg
.
File metadata
- Download URL: cifit-0.4.post5_19272271c92e_20110127-py2.5.egg
- Upload date:
- Size: 43.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43118958e3a900b1dd4b97f2e54fbb6e6196dd2fa8da1066e6994462a3b00c03 |
|
MD5 | 7a5ce26b11c32f29d3505014cd6da943 |
|
BLAKE2b-256 | d8d67f7d7600f665bb3ecbbce98be6407e31fad1d0cc3c780698a606cda15d3d |