Report abuse

class packages::virt {
    @package{"httpd": }
}

class webnode inherits packages::virt {
   Package["httpd"] { ensure => "1.2.3" }

   realize(Package["httpd"])
}

class tomcatnode inherits packages::virt {
   Package["httpd"] { 
      before => Package["tomcat"],
      ensure => "1.2.4" 
   }

   realize(Package["httpd"])
   realize(Package["tomcat"])
}


node web1 {
   include packages::virt
   include webnode
}

node tc1 {
   include packages::virt
   include tomcatnode
}