On Mar 19, 1:38 am, Victor Hooi <victorh...@gmail.com> wrote:
> We currently use a collection of custom Python scripts to validate various 
> things in our production environment/configuration.
>
> Many of these are simple XML checks (i.e. validate that the value of this XML 
> tag here equals the value in that file over there). Others might be to check 
> that a host is up, or that this application's crontab start time is within 20 
> minutes of X, or that a logfile on a server contains a certain line.
>
> The checks are executed automatically before every production push.
>
> The scripts are written imperatively. E.g.:
>
> SSH into a server
> Open up a file
> Parse the XML
> Search for a XML tag
> Store the value in a variable
> Compare it to another value somewhere else.
> I'd like to look at writing a framework to do these validation in a slightly 
> more declarative way - i.e. instead of defining how the server should check 
> something, we should just be able to say <tag>value</tag> should equal foobar 
> - and let the framework handle the how.
>
> I was thinking we could then schedule the checks and shove the jobs onto a 
> queue like Celery.
>
> To stop me from re-inventing the wheel - are there any existing projects that 
> do something like this already?
>
> Or has anybody here done something similar, or would be able to offer any 
> advice?
>
> (I aware of things like Puppet or Chef - or even Salt Stack - however, these 
> are for managing deployments, or actually pushing out configurations. These 
> validation scripts are more to ensure that the configuration changes done by 
> hand are sane, or don't violate certain basic rules).

There is fabric
http://docs.fabfile.org/en/1.6/
Basically does the two jobs
1. allowing python functions to be called from the command line
2. Giving ssh a more pythonic feel

You could use the framework to build your own DSL.
[And/or maybe ask the fabric guys what they think of your idea(s) ]
[Disclaimer: Ive not used fabric myself]
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to