On 11.02.2011, at 15:42, li...@truthisfreedom.org.uk wrote:

> Hi all,
> 
> I'm running puppet 0.25.5 and I'm running into an issue with virtual defines 
> for setting up my NGinx Vhosts.
> 
> The define is as follows:
> 
> class nginx{
> 
> ...
> 
> 
> # Setup a resource to create the configuration files
> define nginx_vhost($website_listen_port = "80",$ssl_enabled = "false"){
>   $website_hostname = $title
>   # Setup the config file with the appropriate name from the template
>   file{"/etc/nginx/conf.d/${title}.conf":
>           ensure  => file,
>           content => template("nginx/nginx_vhost.conf.erb")
>   }
>   if $ssl_enabled != "false" {
>           $website_listen_port = "443"
>           file{"/etc/nginx/conf.d/${website_hostname}.ssl.conf":
>                   ensure => file,
>                   content => template("nginx/nginx_vhost.conf.erb")
>           }
>   }
> }
> 
> ...
> 
> }
> 
> What I want to be able to do is the following in my classes:
> 
> # Set the websites to be hosted on this server as an array
> $websites = ['testing.domain.com','test2.domain.com']
> # realize the websites
> @nginx::nginx_vhost($websites:)
> realize(Nginx::Nginx_vhost[$websites])
> 
> 
> The issue that I am running into is that I do not appear to be able to set 
> the values for website_liste_port or ssl_enabled through using this 
> methodology.
> 
> Is the a way to pass the domain *and* the values for 
> website_listen_port/ssl_enabled to the define at the point of realization?
> 
> Thanks,
> 
> Matt

Hi,

I would use variables in resources namevar:

define nginx_vhost($website_listen_port = "80",$ssl_enabled = "false"){
  $website_hostname = $title
  # Setup the config file with the appropriate name from the template
  file{"nginx_${title}_${website_listen}":
          path => /etc/nginx/conf.d/${title}.conf":
          ensure  => file,
          content => template("nginx/nginx_vhost.conf.erb")
  }

(I can not verify atm.)

hth,

Martin

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