<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
I should have known better than to draw a diagram on a mailing list.
:)  Please imagine what that <i>might</i> have looked like if it made
any sense. :)<br>
<br>
Michael DeHaan wrote:
<blockquote cite="mid:46706F51.8060804@redhat.com" type="cite">I
figured I would share a bit on what's been going on with upstream
Cobbler lately.
  <br>
  <br>
As Euclid suggested on IRC a while back, I'm moving Cobbler to a
"even=stable, odd=unstable" release convention.  This makes the current
cobbler release 0.4.8 stable, and in a week or so, I'll push Cobbler
0.5.0 out to F7-testing (but not FC6, as it has no "testing" yet).  
There will be RPMs, but no Fedora-7 or FC-6 push.  Not immediately,
anyway.
  <br>
  <br>
Why split off a testing release?   Lots of new cool stuff coming in. 
The most notable feature is support for profile inheritance.   A lot of
the ideas for this suggestion came in from Adam Rosenwald (thanks,
Adam) -- I believe there were some earlier discussions about this too,
sorry I forget who was involved.    Anyhow, this feature is illustrated
as follows:
  <br>
  <br>
cobbler profile add --name=xyz --virt-ram=512 --virt-size=5
--distro=distro_name --kickstart=/path
  <br>
cobbler profile add --name=xyz2 --inherit=xyz --virt-size=6
  <br>
  <br>
In the above example, cobbler profile p2 is going to be the same as p1,
even when p1 changes, except for an override in the --virt-size
parameter.  This can be seen by looking at the saved cobbler profile
files, where you'll see a lot of parameters are stored as
"<<inherit>>" which means, I don't have a setting, ask my
parent.  And yes, there can be any number of levels of inheritance.
  <br>
  <br>
A further example:
  <br>
  <br>
cobbler import --path=/mnt/dvdiso --name=FC-6
  <br>
cobbler profile add --name=FC-6-xen-i386-webserver
--inherit=FC-6-xen-i386 --kickstart=/path/to/special/kickstart
  <br>
cobbler profile add --name=FC-6-xen-i386-dbserver
--inherit=FC-6-xen-i386 --kickstart=/path/to/another/kickstart
  <br>
cobbler profile edit --name=FC-6-xen-i386 --virt-ram=6
  <br>
cobbler profile add --name=FC-6-xen-i386-webserver-more-disk
--inherit=FC-6-xen-i386-webserver --virt-disk=10
  <br>
cobbler sync
  <br>
  <br>
In the above example, I've derived two profiles from the profile I get
for free from the "cobbler import".   I have assigned different
kickstarts to both of them.
  <br>
Then, I go and edit their parent kickstart, and have, effectively,
changed the --virt-ram value for both of them.   A quick way to see
what actually happens to  the
  <br>
"calculated" values of FC-6-xen-i386-webserver-moredisk is to look at
the file in /var/www/cobbler/profiles/$name ... you'll see all the
values -- and the cool thing is,
  <br>
that in 0.5.0, every single one of these values is available in Cheetah
templating -- which is fairly cool.
  <br>
  <br>
This inheritance blending also works for ks_meta (templating) variables
and kernel options.  In those cases, you can add additional kernel
options to existing options part of a parent profile, or you can
override existing ones with new values.
  <br>
  <br>
cobbler profile add --name=p1 ...
  <br>
cobbler profile add --name=p2 --inherit=p2 --ksmeta="moose=lodge"
  <br>
  <br>
The above example would use all of the templating metadata values of
p1, but would set the additional value of "moose" to the value "lodge".
  <br>
  <br>
The implementation of the above is available now in git -- with only a
bit of polishing still needed.   Namely, awareness of cascade updates
so running sync on the entire
  <br>
cobbler tree is not required after an edit to a parent node.
  <br>
  <br>
When is this useful?   The example Adam gave, and I think it's a good
one, is if a site had multiple locations, with different policy rules
between them, and one also wanted to have system roles (webserver,
dbserver) underneath of each of these policies.   An inheritance system
makes something like this possible.
  <br>
  <br>
Right now, only profiles are inheritable (not distros or systems), and
it's only single inheritance.  No, you should never need an OOP
textbook to understand Cobbler.  That would be wrong :)
  <br>
  <br>
Questions?  Comments?  Fire away.
  <br>
  <br>
(Note that Cobbler 0.5.0 also contains dnsmasq support (including
DNS!), edit/copy/rename commands, and being able to name systems after
things that aren't MAC addresses -- so, if you're interested in any of
the above, check out the git repo)
  <br>
  <br>
Thanks!
  <br>
  <br>
--Michael
  <br>
  <br>
  <br>
_______________________________________________
  <br>
et-mgmt-tools mailing list
  <br>
<a class="moz-txt-link-abbreviated" href="mailto:et-mgmt-tools@redhat.com">et-mgmt-tools@redhat.com</a>
  <br>
<a class="moz-txt-link-freetext" href="https://www.redhat.com/mailman/listinfo/et-mgmt-tools">https://www.redhat.com/mailman/listinfo/et-mgmt-tools</a>
  <br>
  <br>
</blockquote>
<br>
</body>
</html>