On Mon, Sep 1, 2008 at 11:17, UNIX admin <tripivceta at hotmail.com> wrote:
> Hi all,
>
> a question regarding the new IPS, that has been gnawing on me for a while now.
>
> First some context: I have a TON (and I mean HUNDREDS) of System V packages 
> that currently automate and completely encapsulate various system 
> configuration tasks.
To my mind, the packaging system is the wrong place to deliver
site-specific configuration changes.  It should be for binaries and
support files, things that will not change over time.  A system like
GNU CFengine or Puppet should be used to modify these things.  I use
CFengine at work, and while it works quite nicely I think I'd look at
the alternatives before I used it elsewhere.  The parser is quite
fragile, but once you discover its idiosyncrasies it's livable-with.

> For example, I have a package that automatically configures syslog.conf on a 
> firewall to log to a specific log file; a package that automatically modifies 
> $PKG_INSTALL_ROOT/etc/nsswitch.conf to use DNS; a package that automatically 
> adds user "oracle" and groups "dba" and "oinstall" to a system; a package to 
> configure the system's $PKG_INSTALL_ROOT/etc/inet/hostname to configure 
> "127.0.0.1" to also be a "localhost"; and so on.
1) CFengine can push a revised syslog.conf, and restart the service
when it does so, so that the Right Thing happens.
2) nsswitch.conf should be configured properly post-Jumpstart (if
Jumpstart is what you're using); tell it to use DNS then, ignoring
missing-host warnings if they occur, and it'll use DNS after install.
Unless you're using DNS for something other than 'hosts'.
3) The packages that install Oracle/whatever should take care of their
own users.  There are actions defined for adding and removing users in
IPS packages.
4) This can be cfengined, but I'm not sure why you need this.

> In other words, I have automated a whole bunch of system administration 
> tasks, thereby making them consistently repeatable via pkgadd(1M), as per the 
> Capability Maturity Model (CMM) level 2 and above.
CFengine takes this a step further, by allowing different actions to
be taken on different machines.  Suppose you define a "webservers"
group; then you can enable Apache on those machines, and disable it on
all the others.  Or a "interactive" group that customers log into; on
those boxes the firewall rules can be different.  You can define these
groups by the hostname of the box.  I've even built rules for
'nismaster' and 'nisslaves' that cause NIS to be installed properly on
the boxes named, and reference each other.

My two cents is that the package system should deliver static content,
and perhaps a default config file, but one should not need a new
version of the Apache package to modify the configuration file.

Will

Reply via email to