Hello,
I'm new to puppet, so maybe this is a silly question, but an hour of
googling has thrown up nothing.
I am trying to define a set of classes which each represent different
server types in my architecture, for example "dns server" and "web
server". A single machine may perform more than one server role - eg
it could be both a dns server and a web server.
For the types of roles I have, lets call them foo and bar, there are
some packages in common. Eg they both require tomcat and jre. So to
start off with I tried this:
class foo {
package { jre-jce: ensure => present}
package { tomcat: ensure => '6.0.20-1'}
package { foo-services: ensure => present}
}
class bar {
package { jre-jce: ensure => present}
package { tomcat: ensure => '6.0.20-1'}
package { bar-services: ensure => present}
}
node 'server1' {
include foo
include bar
}
This works fine if I only include one class or the other in the node
definition, but if I include both then I get an error "Package[jre-
jce] is already defined in file ...; cannot redefine at ..."
So now I am trying to find a way to move the package definitions
outside of the class definitions, and reference them from there. But
I can't find a syntax which allows me to do that. The closest I have
come is this:
package { jre-jce: ensure => present}
class foo {
Package["jre-jce"] {}
}
but puppet doesn't like the empty braces.
Is there a better way to do what I am trying to do? Or is this the
right way but the wrong syntax?
Thanks for any help.
Paul
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.