[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