The following use case suggestion just came in from mbarr on IRC...
Suppose you have a bunch of existing kickstarts, perhaps owned by a RHN
satellite. The use case is that you want to use Cobbler to manage your
PXE tree, and (possibly) DHCP. However, cobbler currently requires
that kickstarts be assigned to a profile, but they can't be assigned to
a system object. Why? Because cobbler *wants* you to think about
profiles. However, this means you can't use Cobbler for PXE. Seems
broken to me.
In 0.5.0, this has changed and I finally decided to be a bit more
flexible after hearing this request a few times. The use case is a good
one. I still maintain that cobbler profiles and kickstart templating
are more powerful than having a kickstart for each existing system, but
for those people converting an infrastructure that has a lot of existing
kickstarts for specific servers, Cobbler should support those -- as a
way to migrate to a system that has templates and profiles that really
serve to define the roles that individual systems should perform
("webserver", "dbserver", "etc")
So the following is now possible:
cobbler profile add --name=fc6-webserver--distro=abcd
[--kickstart=/path/to/kickstart]
cobbler system add --name=label --mac=AA:BB:CC:DD:EE:FF
--profile=fc6-webserver --kickstart=/path/to/kickstart
So basically it works like you'd expect, though before you had to put
the --kickstart on the profile object always, and had no way to do a
system specific kickstart file without creating a profile for that
specific system. Any values to --ksmeta or --kopts or any of the
virtual settings still work as you would expect. You can pass in a
http://, nfs://, or ftp:// URL for --kickstart (like before), though,
like before, these network locations will be treated as raw kickstarts
to use directly and not templates.
For new users of cobbler, I still highly recommend using profiles as an
abstraction layer -- though if you have some existing kickstarts and
aren't able to templatize them right away, it's still important that you
can be able to do this. So that's why this was added.
So, there you go...
This is checked into the git repository for those interested.
--Michael