[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Need 'UncommentAndSetValue' or some such
From: |
Brian C. Hill |
Subject: |
Re: Need 'UncommentAndSetValue' or some such |
Date: |
Tue, 25 Oct 2005 12:15:13 -0700 |
User-agent: |
Mutt/1.4.2.1i |
I tend to agree. Cannonical edit directives are concise and
clean (pretty, even?), but they will only take you so far. I mark up
all of my config files (resolv.conf, ntp.conf, automount configs,
/etc/system, syslog.conf, etc.) with m4. xml might be a better choice
in the long run, but m4 has worked well for me across a large number of
systems with different subnets, domains, roles, timezones, etc..
I am using cfe to replace rdist now, making heavy use of
copy:/shellcommands:. I am considering using some of the cfe mount and
resolver functionality to replace what I am doing (which will obsolete
the m4 files for those), but that's just a couple of pieces.
Is anyone else using a markup language to 'templatize' their
config files? This is slightly off-topic - probably better to reply to
me directly.
Brian
======================================================================
On Tue, Oct 25, 2005 at 11:03:59AM -0500, Adams, Russell L. wrote:
> Thats what m4 is for.
>
> Russell
>
> On Tue, Oct 25, 2005 at 10:03:32AM -0400, David Scott Coburn wrote:
> >
> > In many of my cfagent script I have constructs like this:
> >
> > editfiles:
> >
> > { /etc/postfix/main.cf
> > BeginGroupIfNoSuchLine "mydestination = $(host), $(fqhost),
> > localhost"
> > DeleteLinesMatching "^mydestination.*"
> > Append "mydestination = $(host), $(fqhost), localhost"
> > EndGroup
> > BeginGroupIfNoSuchLine "mydomain = $(domain)"
> > DeleteLinesMatching "^mydomain.*"
> > Append "mydomain = $(domain)"
> > EndGroup
> > DefineClasses "restart_postfix"
> > }
> >
> > The bit that bugs me the most about this construct is the repetition
> > of the text I am searching for and the text to replace it with.
> >
> > What would be nifty would be something like this:
> >
> > editfiles:
> >
> > { /etc/postfix/main.cf
> > UncommentAndSetValue "mydestination =" "$(host), $(fqhost),
> > localhost"
> > UncommentAndSetValue "mydomain =" "$(domain)"
> > DefineClasses "restart_postfix"
> > }
> >
> > The first argument would be the variable that get its value changed,
> > and the second argument would be what it gets set to.
> >
> > If the value was already set then nothing would happen. If a variable was
> > changed then the DefineClass would happen. If the variable was commented
> > out
> > then it would be uncommented and set to the given value.
> >
> > It seems like this kind of setting of variables in config files to some
> > value is half of what I use cfengine for and this would be a whole lot
> > easier to set up and then maintain.
> >
> > Perhaps there is already a better way to do it that I have not found in
> > the manual yet?
> >
> > Thanks,
> >
> > Scott
> >
> > --
> > * David Scott Coburn
> > * Brookhaven National Laboratory
> > * scott@bnl.gov 631.344.7110
> > * "Assume a spherical cow of uniform density..."
> > _______________________________________________
> > Help-cfengine mailing list
> > Help-cfengine@gnu.org
> > http://lists.gnu.org/mailman/listinfo/help-cfengine
>
>
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@gnu.org
> http://lists.gnu.org/mailman/listinfo/help-cfengine
--
_____________________________________________________________________
/ Brian C. Hill bchill@bch.net http://brian.bch.net \
| UNIX Specialist BCH Technical Services http://www.bch.net |