Occasionally the question comes up on what puppet/cfengine/other 
integration looks like for Cobbler.   So far that answer (for Puppet, 
anyway) has been to use external_nodes, as below, but I think we can do 
better than this.  Here's the Wiki page on that:

https://fedorahosted.org/cobbler/wiki/UsingCobblerWithConfigManagementSystem

How does this idea (to be explained below) sound for those that are 
using Puppet?   I think this could be done with a minimum amount of code 
so it wouldn't be too intrusive to non-Puppet users.   I don't think 
this was cleanly possible until 1.0, due to the new mod_python services 
infrastructure in Cobbler.

New feature:   Cobbler gets a new URL that serves up an external_nodes 
file for a given profile/system name.

http://cobbler.example.org/cblr/svc/op/puppet/system/$name
OR
http://cobbler.example.org/cblr/svc/op/puppet/profile/$name

This file returns the YAML file that is required to tell Puppet what 
puppet classes the node gets.

Cobbler also ships a very simple snippet for use in kickstart %post that 
wgets this file when called, saves it, and uses that file to supply the 
answer to "external_nodes".

We could source the variable assignments out of --ksmeta, so there would 
be no need for additional variables added into Cobbler to support this, 
just some added support code.

For example:

cobbler profile edit --name=webserver --ksmeta="profile=webserver"
cobbler system edit --name=foo --profile="webserver"

If it makes things easier we could still add a syntax like:

cobbler profile edit --name=webserver --management-classes=webserver

This feature would allow the profiles to be reassigned anytime, as 
needed, as the profile and system level without reinstalling the 
system.   You can then manage your IP/MAC/install/config-mgmt 
associations all in one place, without having to hop between 6 or 7 
different tools.  To me, this is exactly what cobbler's goal is --- to 
allow you to do powerful edits in terms of "objects" and /what/ you want 
to get done, not how you want to do it.

Thoughts?

Does cfengine have a similar concept for mapping systems locally to the 
configuration rules they should access?

--Michael

_______________________________________________
cobbler mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/cobbler

Reply via email to