[Spacewalk-list] Spacewalk/Cobbler templating features pending in Cobbler 1.3 == config management
Michael DeHaan
mdehaan at redhat.com
Mon Oct 6 15:02:36 UTC 2008
Hi folks,
I know Cobbler/Spacewalk integration is ongoing so I wanted to bring up
a new Cobbler feature that may help with configuration management as
well as provisioning. This is a new feature that has just been
suggested a few weeks ago but I think it's interesting -- primarily
because it's incredibly simple to do.
Basically James Cammarata's pending patches to cobbler (posted to the
cobbler mailing list) allow us to use Cobbler's templating mechanism to
template arbitrary files (not just kickstarts and yum configs) using
Cheetah. This would be usable as a future templating mechanism for
configuration files within Satellite, potentially replacing Satellite
config management without bringing in the problems of managing a more
complicated configuration management infrastructure.
At the command line level, it looks like this:
cobbler system edit --name=foo
--template-files="/srv/source.template=/etc/foo/bar
/srv/source2.template=/etc/baz/glurp"
Basically this allows a hash of "source=destination" keypairs to be
applied anywhere throughout the cobbler "distro, profile, system" object
chain. These templates can then be inherited between distributions,
profiles, and systems. Any cobbler variables applied to "--ksmeta" can
then be evaluated through the template, and the template can also
contain any Cheetah directives of Cobbler snippets (see
cheetahtemplate.org/learn).
In kickstart %post, a kickstart snippet translates these to a series of
simple wget's to suck down the files and install them on the systems in
the right locations. This is all automatically built out for the user
so the provisioning stage automatically deploys the template files:
A logical extension of this is a call in koan to keep templates up to date:
koan --server=cobbler.example.org --system=foo.example.org --update-files
This would pull down the files given in "--template-files" and
retemplate them dynamically.
Essentially you get an ultra-lightweight configuration management system
for free for users who do not want to assume the complexity of
maintaining a Puppet and/or cfengine infrastructure, which can at times
feel very much like a development exercise. (We also know of a couple
of major puppet problems presently -- (A) rpmdb corruption, and (B)
packaging each package install in a single yum transaction leading to a
long install time overhead.
As I know we wanted to streamline Satellite's configuration management,
this may be an interesting proposal as it uses the same tools as the
install system and can manage both in parallel
If someone wanted to use a heavier CMS on top of things, they still
could, though this would provide an option similar to what they have
now, with the additional ability to use the full power of Cheetah inside
their templates.
Cobbler profiles then become the same concept for managing an existing
system as they do a "to-be-installed" system.
Anyway, we still have to implement a bit before the above is feasible,
but I wanted to throw the idea out there so we could be thinking of
it. It seems to be a very powerful idea and also something that would
be trivial to fit into a GUI. I am a bit worried that while
puppet/cfengine/bcfg2 are awesomely powerful, putting them into a GUI
app for integration reasons does not really offer any advantages over
using them stock. With the above, we could have a lightweight CM
system in the core Spacewalk app and still allow usage of those said
tools out of band as needed. Should folks /do/ want to integrate with
Puppet or another CMS, they have tools like this
https://fedorahosted.org/cobbler/wiki/UsingCobblerWithConfigManagementSystem
that we could do to help them with this, but some "vi" is still required.
--Michael
More information about the Spacewalk-list
mailing list