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: jami...@puppetlabs.com 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 >> <jonathan.gaze...@bristol.ac.uk> 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 puppet-users@googlegroups.com. >>> To unsubscribe from this group, send email to >>> puppet-users+unsubscr...@googlegroups.com. >>> 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 puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscr...@googlegroups.com. > 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 puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.