So, had a get together with various Genome folks today
(
fedorahosted.org/Genome), and I think this lines up /nicely/ with what
many people have already wanted to do with cobbler. This is about
moving some of those views more into cobbler to get them a bit wider
distribution, and this aligns with what I have wanted to do with
CobblerWeb as well.
So, I'm sharing here to get input.
The idea is thus...
Have a page that users can visit where they pick a cobbler profile and
answer a predefined set of questions (with various validation and maybe
custom text addable) and the result is that we create
a cobbler system for them and deploy it with the deploy API (in 2.0)
The idea is that the templates can contain any number of default values
to fill in and questions, and the user does not get access to the
regular "complicated" cobbler user interface.
I think this might be implemented as a seperate application in the
Django /usr/share/cobbler/web project, most likely, but using the same
authentication systems.
The templates could be described in simple json files, accessible in
/var/lib/cobbler/web_wizard or equivalent.
This parallels the use cases of a lot of users I've personally talked
with, so I think it would be useful.
For instance, assume the user wants to request resources for a internal
project.
They may need to enter in the names of some internal servers, their
name, and maybe some parameters about how many foos do they want or what
the tunings of their whatsis are.
Once they press the "submit", the deploy API is used to create the
virtual machines in the virt group.
Many parameters, including the virt group could be specified by the
template.... so instead of seeing 50 parameters in the systems page they
only see (and only can edit) a few fields, that all have user friendly
descriptions.
Bonus points for later would include making this "approvable" where the
admin could customize the request, or making it easier to request that
same machine N times, so you could get 10 test machines
all looking basically the same.
In keeping with our model of sharing, we can ship some basic templates,
such as for creating a webserver or a mail server or a hudson machine or
(I don't know).
This will likely make use of --mgmt-classes and such, for integration
with Puppet, to do the heavy lifting... so why we may ship with trivial
pure-kickstart parameters, we'll also include examples that involve
customizing Puppet recipes with system specific variables.
--Michael