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