Axel Thimm wrote:
On Wed, Dec 31, 2008 at 04:32:38PM -0500, Michael DeHaan wrote:
> Axel Thimm wrote:
>
>> On Tue, Dec 30, 2008 at 06:34:32PM -0500, Michael DeHaan wrote:
>>
>>
>>> Axel Thimm wrote:
>>>
>>>
>>>> anaconda has an %include directive, but that only works for local
>>>> files. The usual trick is to %pre a wget and %include it later on. But
>>>> that doesn't work if the parent kickstart file is the one defining
the
>>>> base parameters like which URL to install from etc.
>>>>
>>>> Also %including a prerendered kickstart file isn't really cobbler
>>>> style, the variables could have changed and the included rendered file
>>>> would reflect the old settings of the parent profile.
>>>>
>>>> As a workaround I'm doing the following on top of every kickstart
file:
>>>>
>>>> #if $getVar("ksparent","") != ""
>>>> #include $ksparent
>>>> #end if
>>>>
>>>> But ksparent needs to be provided and I'm using the poor man's
API as
>>>>
>>>> ksparent=`cobbler profile dumpvars --name=Parent | grep "^
'kickstart':" | sed -e"s| 'kickstart':
'\(.*\)',$|\1|"`
>>>> ...
>>>> cobbler profile add [...] --inherit=Parent
--ksmeta="ksparent=$ksparent" [...]
>>>>
>>>> It would be nice if ksparent could be set automatically by cobbler and
>>>> if a simple scriplet like
>>>> $ cat /var/lib/cobbler/snippets/include_parent
>>>> #if $getVar("ksparent","") != ""
>>>> #include $ksparent
>>>> #end if
>>>>
>>>> would be referenced on all sample kickstart files as
>>>>
>>>> $SNIPPET('include_parent')
>>>>
>>>> Thanks!
>>>>
>>>>
>>> I'm not sure I understand this one -- could you explain a bit more about
>>> the use case and what you mean by "parent"/"ksparent" in
this case?
>>>
>>>
>> The use case are subprofiles, that's where $parent comes from.
>>
>> If one defines a subprofile it is usually for a more specialized group
>> of hosts that may need a slightly different kickstart
>> file. Fortunately most kickstart options can be overriden by later
>> options and some sections are even merged together, so that
>>
>> %include /some/kickstart/file/parent.ks
>>
>> at the very top of the kickstart file inherits the parent kickstart
>> and extends it.
>>
>> This is heavily utilized in the Fedora spins, see for example
>>
https://fedorahosted.org/spin-kickstarts/browser/fedora-livecd-desktop.ks#L5
>>
https://fedorahosted.org/spin-kickstarts/browser/fedora-live-base.ks
>>
>> The use case in cobbler is more like
>> # cobbler list
>> distro f10-x86_64
>> profile f10-x86_64
>> profile desktop-f10-x86_64
>> system prospero
>> profile server-f10-x86_64
>> profile webserver-f10-x86_64
>> system shylock
>>
>> For example webserver-f10-x86_64.ks could look like
>>
>> $SNIPPET('include_parent')
>>
>> %packages
>> @web-server
>> %end
>>
> I'd read the "Advanced Snippets" instructions here:
>
>
https://fedorahosted.org/cobbler/wiki/KickstartSnippets
>
> Basically you can make a snippet called "foo" and then have
> $SNIPPET('foo') do something else depending on the profile.
>
> This would allow for what you want and still let the two to share a
> common kickstart file.
>
But then you wouldn't be able to share common practices with the other
prominent kickstart projects at Fedora/RHEL which do "partial specialzations"
using the include style.
Sorry, I'm /still/ not following what in Cobbler needs to change to
allow what you want to do. Anaconda include still works for those that
want to use it, so you don't seem to be in trouble there. So far I
don't see the need to change anything in Cobbler to let you do what you
want, though for most people I think the snippet system is going to be
easier to use.
Also a
$SNIPPET('package_selection')
wouldn't really document what this kickstart file is about while the
above example of a specialization of a server profile to a webserver
one is self-documenting.
They seem equally documenting to me, and one can always look at the
rendered kickstart via:
"cobbler system getks --name=foo" (or profile getks, etc)
------------------------------------------------------------------------
_______________________________________________
cobbler mailing list
cobbler(a)lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/cobbler