-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Someone might give you a better answer, but try:

<% if tags.index('httpd') && has_variable?('httpd::open_firewall') %>

This *may not* work due to file parsing order, but I *think* that it will.

Trevor

Dick Davies wrote:
> I'm using a primitive template to build my iptables rulesets.
> It's all in a branch on my github repo at
> 
> http://github.com/rasputnik/babysteps-puppet/tree/templated-iptables
> 
> template that looks like:
> 
> <% if has_variable?('httpd::open_firewall') %>
> -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
> <% end -%>
> 
> (see 
> http://github.com/rasputnik/babysteps-puppet/blob/templated-iptables/modules/iptables/templates/iptables.erb
> )
> 
> i then set a variable in the httpd module like this:
> 
> class httpd {
>   $open_firewall = 'on'
>   #.... rest of httpd class def.
> }
> 
> [ 
> http://github.com/rasputnik/babysteps-puppet/blob/templated-iptables/modules/httpd/manifests/init.pp
> ]
> 
> The idea being that if a node has 'include httpd', then when it runs
> 'include iptables'
> it'll open the right port.
> 
> This works fine for classes that include httpd. The trouble is that i
> get this error on
> nodes that don't :
> 
> [r...@node03 ~]# puppetd -tv
> info: Retrieving plugins
> err: Could not retrieve catalog: Failed to parse template
> iptables/iptables.erb: Class httpd has not been evaluated so its
> variables cannot be referenced at
> /etc/puppet/modules/iptables/manifests/init.pp:11 on node node03.pixie
> warning: Not using cache on failed catalog
> 
> 
> To my mind, that should be a warning, not an error.
> 
> Is there any 'guard' I can put in my template to stop this blowing up?
> 
> I did try:
> 
> <% if has_variable?('httpd') && has_variable?('httpd::open_firewall') %>
> 
> but the first clause is always false, even on nodes that 'include httpd'.
> 
> 
> Sorry this has been a bit longwinded, but I'm a bit stumped here.
> Thanks in advance for
> any tips.
> 
> > 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkowedoACgkQyjMdFR1108Dh0gCfWz7tn6/5+K2w9LZK2P+ajsab
hy4An1ogD2dP3yj9wuGpn4v/Q1dKmoEa
=7UvV
-----END PGP SIGNATURE-----

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to