Vreman, Peter - Acision wrote:
> -----Original Message-----
> From: cobbler-bounces(a)lists.fedorahosted.org [mailto:cobbler-
> bounces(a)lists.fedorahosted.org] On Behalf Of Michael DeHaan
> Sent: woensdag 10 december 2008 15:13
> To: cobbler mailing list
> Subject: Re: cobbler_server environment snippet
>
> Jolynn Schmidt wrote:
>
>> I found that knowing about the variable @@server@@ is very useful. I
>> can create yum.repos configuration files at the time of build that
>> point to the cobbler server that you build from... Are these documented
>> anywhere? I would like to know what other variables cobbler uses that
>> I could also use.
>>
>> For example one problem I am currently trying to solve is to define
>> the variable in the kickstart file for the network device. Sometimes I
>> use eth0 sometimes eth1. When I use koan for my rebuilds this needs to
>> be set to the interface that koan used to connect to the cobbler
>> server.. Currently I use ksmeta to define $iface in a profile for this
>> and then pass that into the ks file, but I wonder if there is a magic
>> cobbler variable that already sets this.
>>
>>
> The development branch already has some nice network configuration
> snippets that auto generate this (thanks go to Jasper Capel). We're
> testing them now -- I originally said the release would be Friday, it
> /might/ be next week, though it will definitely be soon.
>
> As for listing all of the variables you can use, "cobbler profile
> dumpvars --name=foo" or "cobbler system dumpvars --name=bar" will
show
> them. The interface structure is accessible as a hash through Cheetah,
> so $interfaces["mac_address"] will work, etc. See the 1.3 development
> branch snippets for further examples, and they'll be coming to the
> sample kickstarts in the next release very soon.
>
>> Below is the snippet post_cobbler_env that I'm now using:
>>
>> echo "export COBBLER_SERVER=@@server@@" > /etc/profile.d/cobbler.sh
>>
>> echo "setenv COBBLER_SERVER @@server@@" >
/etc/profile.d/cobbler.csh
>>
Is there a reason why the macro is @@server@@ is using @@ instead of the $'s that are
used in all other macro's? E.g. the @@server@@ could become
$cobbler_server:$cobbler_ro_port to be consistent.
Peter
It's a bit of a weird reason, but there's a reason. This may be a bit
confusing but I'll elaborate:
In the case of cobbler import we expand the variable "$tree" in the
kickstart. The problem is the output of this expansion needs to include
a variable in order to allow the cobbler
--server-override parameter to work (and indeed, in order to allow
cobbler replicate to work). Running Cheetah twice on the same file would
be a trainwreck as it would evaluate
bash as Cheetah even if included in #raw blocks, so instead we choose
another variable substitution and do this manually just after the
Cheetah run.
So our templating engine is Cheetah /plus/ a bit more, rather than just
running Cheetah twice.
For things that do not involve double substitution, using "$foo" works
fine, and everyone else should just use $foo. @@foo@@ should be reserved
for Cobbler internals and that weird case above.
Basically if a variable is to be expanded and also needs to be saved in
a cobbler object /unexpanded/, this is where the "@@" stuff comes in. I
could have chosen any other syntax, it's just that syntax was
sufficiently weird it would not be an escaping problem.
--Michael
This e-mail and any attachment is for authorised use by the intended recipient(s) only.
It may contain proprietary material, confidential information and/or be subject to legal
privilege. It should not be copied, disclosed to, retained or used by, any other party. If
you are not an intended recipient then please promptly delete this e-mail and any
attachment and all copies and inform the sender. Thank you.
_______________________________________________
cobbler mailing list
cobbler(a)lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/cobbler