Michael DeHaan wrote:
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






Also described here: https://fedorahosted.org/cobbler/wiki/BuiltinConfigManagement


_______________________________________________
Spacewalk-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/spacewalk-list

Reply via email to