On Fri, Dec 17, 2010 at 7:17 AM, bluebook <paul.fletc...@gmail.com> wrote:
> 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 ..."


http://projects.puppetlabs.com/projects/1/wiki/Virtual_Resources

Define the virtual resource outside the classes, realize it in both.

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



-- 
Nigel Kersten - Puppet Labs -  http://www.puppetlabs.com

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