help-cfengine
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How can I extend the types of configuration managed by cfengine?


From: Daniel Pittman
Subject: How can I extend the types of configuration managed by cfengine?
Date: Thu, 12 Sep 2002 12:05:12 +1000
User-agent: Gnus/5.090006 (Oort Gnus v0.06) XEmacs/21.5 (bamboo, i686-pc-linux)

Good day.  I have been using cfengine 2 for a few weeks now and I am
very pleased with it's general structure and features. While it's still
taking time to get a grasp on how, exactly, I want to use it, I have
gotten very positive results so far.

The once main sticking point that I have today is in working out how to
manage a handful of configurations with cfengine.

The primary issue for me, at the moment, is that I run a mailing list
service which uses an SQL database to manage subscription information.

As the list software evolves the database schema also changes, requiring
some administration work on my part. Currently this is managed on the
database host directly.

Th two main problems this has, for me, are that maintenance of the
schema by hand is a time consuming activity[1] and that moving the list
service to a new host must be done by hand.


Now, it's relatively easy for me to write a Perl script that uses the
database interface and introspection capabilities to take a schema
description and converge the existing SQL tables with that.

I could, therefore, write this script and use cfengine to transfer it
and the schema to the host, then run it routinely to ensure that the
database converged correctly.


This seems a bit odd, though. I manage other data with cfengine
directly, using the high level policy language and would like to have my
database schema management integrated directly with that, not as some
sort of second class citizen.


I have read the documentation on cfengine modules and, to me, it looks
like they do half of the job I want. I could easily schedule the Perl
script to run and converge the schema with the desired layout.

It still seemed like I would need the schema description to be stored in
another file, though -- I couldn't give it the same status as the
'files' or 'tidy' action.


It seems, in fact, that the cfengine modules are intended to be either a
way of conveniently extracting more information from system databases
(installed packages, etc) or for performing a single specific task.


If I have missed some detail in the documentation, or if the
documentation is incomplete, I would love to know that I can extend
cfengine at a high level.

Alternately, am I looking at the problem the wrong way? Is this, in
fact, something that I should write a special purpose script for, not
something that I should be trying to add as a generic feature to
cfengine?

Regards,
        Daniel Pittman

Footnotes: 
[1]  For relatively small values of time consuming, but enough to be an
     annoyance, especially if certain other, more mutable, SQL data
     storage ends up being required.

-- 
Men become civilized, not in proportion to their willingness to believe, but
in proportion to their readiness to doubt.
        -- H. L. Mencken




reply via email to

[Prev in Thread] Current Thread [Next in Thread]