I use the following in a class:
/etc/puppet/manifests/classes/impuls_test.pp:
$line = 'test'
$tomcatInstances = [ "tc6_a", "tc6_b", "tc6_c", "tc6_d", "tc6_e",
"tc6_f", "tc6_g", "tc6_h", "tc6_i", "tc6_j" ]
  tc6conf { $tomcatInstances: }
}

and then the following definition:
/etc/puppet/manifests/classes/definitions.pp:
# Tomcat server.xml.erb und tomcat6.conf.erb shortcut
define tc6conf(owner = root, group = root, mode = 644,
                  backup = false, recurse = false, ensure = file) {

    file { "/tmp/$name-server.xml":
            mode => $mode,
            owner => $owner,
            group => $group,
            backup => $backup,
            recurse => $recurse,
            ensure => $ensure,
            content => template("$line/$name/server.xml.erb")
    }

    file { "/tmp/$name-tomcat6.conf":
            mode => $mode,
            owner => $owner,
            group => $group,
            backup => $backup,
            recurse => $recurse,
            ensure => $ensure,
            content => template("$line/$name/tomcat6.conf.erb")
    }
}

And matching template files /var/lib/puppet/templates/test/tc6_a/
server.xml.erb or in /etc/puppet/templates/
What it does is it deploys the template files server.xml.erb and
tomcat6.conf for each tomcat to /tmp
So what you get is /tmp/tc6_a-server.xml and /tmp/tc6_a-tomcat6.conf
and so on.

What I also would like to know is how to pass additional parameters to
my defined function, like your $port or $fullserver.

I hope that this helps you in any way.

On Dec 13, 3:01 am, Alex <a...@davz.net> wrote:
> Hi,
>
> I want to create a single configuration file with one or two
> differences, many times. Therefore, i'd like to do the following in
> pseudo-code:
>
> files = [(a,b), (c,d), (e,f)...]
> foreach a,b in files:
>   create_file(a,b)
>
> Which can then use what I think is a valid definition:
> define create_file($port, $fullserver) {
>     file { "test.erb":
>         content => template('test.erb'),
>     }
>
> }
>
> Sadly, it seems that I can not work out either
> a) How to do the "foreach" in the module manifest, to call the defined
> function many times with different paramaters
> b) Where to put the create_file function for puppet to actually
> recognise it. I have tried <moduledir>/plugins/puppet/parser/functions/
> test.rb and <moduledir>/lib/puppet/parser/functions/test.rb, but get
> error "Could not retrieve catalog: Unknown function create_file" on
> the client.
>
> Any suggestions greatly appreciated!
>
> Cheers,
>
> Alex

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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