Hi Jonathan.
You should be able to use a similar syntax as illustrated below. For instance…
<% if scope.lookupvar('dhcp::includernw') == 1 %> include
"/etc/dhcp/dhcpd.rnw";<% end %>
<% is a marker for ruby code, whereas <%= is actually a ruby expression that
outputs the result of a value or expression.
Hope that helps!
-James
--
James Fryman
ph +1.615.669.2048 | twitter jfryman | gtalk: [email protected]
On Jul 6, 2011, at 10:01 AM, Jonathan Gazeley wrote:
> Thanks Ken. Adding the '==' now makes my template syntactically valid, which
> is always nice.
>
> Next problem - as the $includernw variable is defined in a subclass, it is
> out-of-scope when the main dhcpd.conf template is called from the top class.
>
> I see in the docs there's a function called scope.lookupvar but that seems to
> need a <%= in the template, rather than a <%. Is there a way to use an
> out-of-scope variable in a simple conditional in a template?
>
> I'm a perl kinda guy, but gradually getting to grips with ruby/puppet :)
>
> Many thanks,
> Jonathan
>
>
> On 06/07/11 14:56, Ken Barber wrote:
>> Try:
>>
>> <% if includernw == 1 %> include "/etc/dhcp/dhcpd.rnw";<% end %>
>>
>> Note the '==' :-).
>>
>> ken.
>>
>> On Wed, Jul 6, 2011 at 2:45 PM, Jonathan Gazeley
>> <[email protected]> wrote:
>>> I have a puppet class called dhcp which sets up the daemon and installs a
>>> base dhcpd.conf.
>>>
>>> I have also have subclasses like dhcp::pool1, dhcp::pool2 which install
>>> other files with DHCP code snippets to provide DHCP to different subnets
>>> with different address pools. The manifest for these looks like this:
>>>
>>> class dhcp::rnw {
>>> include dhcp2::common
>>> $includernw = '1'
>>> file { "dhcpd.rnw":
>>> name => "/etc/dhcp/dhcpd.rnw",
>>> mode => 644,
>>> owner => "root",
>>> group => "root",
>>> notify => Service[dhcpd],
>>> source => "puppet:///modules/dhcp/dhcpd.rnw",
>>> }
>>>
>>>
>>> In the ERB template for the base dhcpd.conf, I have lines like this:
>>>
>>> <% if includernw = 1 %> include "/etc/dhcp/dhcpd.rnw";<% end %>
>>>
>>> For some reason, the include lines always get included, even if the subclass
>>> hasn't been applied and therefore the $includernw hasn't been set.
>>>
>>> Am I missing something with the way variables are set and assigned, or read
>>> in ERB?
>>>
>>> Thanks,
>>> Jonathan
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Puppet Users" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/puppet-users?hl=en.
>>>
>>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.