[Spacewalk-list] Variables not passing to snippets
Michael Gliwinski
Michael.Gliwinski at henderson-group.com
Thu Feb 10 09:26:27 UTC 2011
On Friday 04 Feb 2011 13:19:43 Hagberg, Keith wrote:
> What determines when you need raw mode.
Basically with templating you have two levels at which $-variables are
interpreted. If you want them interpreted when the kickstart is generated, do
*not* escape them, if you want them interpreted by the shell at kickstart time
(pre/post script) *do* escape them.
The '#raw' thing is a method for escaping entire blocks. That is you need to
use it when you want an entire block passed to shell at kickstart time as is,
it disables templating of the encompassed block.
> If I remove #raw and #end raw the snippet does not get put into the
> kickstart. When the kickstart is created it still has the snippet name in
> it.
The '$SNIPPET()' is an instruction to the templating system. The '#raw' block
disables templating.
> I tried to escape the $ETH variable and it still will not replace it.
Where do you define ETH? Is it a variable defined in 'Kickstart
Details/Variables' section in the wizard?
If so then you actually do *not* want to escape it.
> Here is my snippet
>
> #raw
#raw disables templating so you don't want it here.
> SPEED=`ethtool $ETH | grep Speed | cut -d' ' -f2`
SPEED is a shell variable defined at the kickstart time, so $-references to it
*will* need to be escaped.
> if [ "$SPEED" == "1000Mb/s" ]; then
like here, this should be ... "\$SPEED" == "1000Mb/s" ...
> echo NIC running at 1000mb/s
> echo "ETHTOOL_OPTS=\"speed 1000 duplex full autoneg on\"" >>
> /etc/sysconfig/network-scripts/ifcfg-$ETH echo "Resetting "$ETH
if ETH is a template variable then it should stay as is (unescaped)
> ifup $DEV
what's DEV?
> elif [ "$SPEED" == "100Mb/s" ]; then
again, SPEED needs to be escaped here
> echo NIC running at 100mb/s
> echo "ETHTOOL_OPTS=\"speed 100 duplex full autoneg off\"" >>
> /etc/sysconfig/network-scripts/ifcfg-"$ETH" echo "Resetting "$ETH
> ifup $ETH
and ETH stays as is
> else
> echo could not determine speed
> fi
> ethtool $ETH
likewise here
> #end raw
and get rid of that.
Hope I managed to explain this a bit.
Remember that you also need the script where you're including the '$SNIPPET()'
call to have the 'Template' option checked, as otherwise it will be implicitly
wrapped in '#raw' and '#end raw' statements which would disable templating
(and therefore prevent ETH variable from being resolved in your example).
--
Michael Gliwinski
Henderson Group Information Services
9-11 Hightown Avenue, Newtownabby, BT36 4RT
Phone: 028 9034 3319
**********************************************************************************************
The information in this email is confidential and may be legally privileged. It is intended solely for the addressee and access to the email by anyone else is unauthorised.
If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful.
When addressed to our clients, any opinions or advice contained in this e-mail are subject to the terms and conditions expressed in the governing client engagement leter or contract.
If you have received this email in error please notify support at henderson-group.com
John Henderson (Holdings) Ltd
Registered office: 9 Hightown Avenue, Mallusk, County Antrim, Northern Ireland, BT36 4RT.
Registered in Northern Ireland
Registration Number NI010588
Vat No.: 814 6399 12
*********************************************************************************
More information about the Spacewalk-list
mailing list