On 02/11/2011 03:42 PM, 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:)
This syntax looks awkward. You should declare each virtual resource on its own: @nginx::nginx_vhost { 'testing.domain.com': ssl_enabled => true; 'test2.domain.com': ; } > 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? Using the array for realization is fine, but I don't recommend it for resource declaration. Yes, there is redundant data in your manifest now. The alternative probably is @nginx::nginx_vhost { $websites: } nginx::nginx_vhost <| title == 'testing.domain.com' |> { ssl_enabled => false } nginx::nginx_vhost <| title == 'test2.domain.com' |> But that's redundant, too, *and* ugly on top of it ;-) HTH, Felix -- 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.