Hi,

I hope I can descripe the challenge.

/etc/puppetlabs/code/environments/production/manifests/nodes.pp:
node default {
  include common
}

/etc/puppetlabs/code/modules/common/manifests/init.pp:
class common inherits config {
  include $classes
[...]

/etc/puppetlabs/code/modules/config/manifests/init.pp:
class config {
  $classes = lookup({
    "name" => "classes",
    "merge" => {
      "strategy" => "deep",
      "knockout_prefix" => "--",
    },
    "default_value" => [],
  })

/etc/puppetlabs/code/modules/bacula/templates/etc/bacula/fileset-exclude
.epp
<%- | Hash $packages,
      Array $classes
| -%>
<% if !empty(grep($packages['install'], "amavis")) or
!empty(grep($classes, "amavis")) { -%>



But I'm also using roles:

/etc/puppetlabs/code/environments/production/hieradata/nodes/node.yaml
roles:
  mailserver:
    - amavisd
  vpn:
    - openvpn
  webserver:
    - apache

/etc/puppetlabs/code/environments/production/hieradata/roles.yaml:
role_details:
  mailserver:
    amavisd:
      classes:
        - amavisd
        - clamav
        - spamassassin

To include all role classes I do:

/etc/puppetlabs/code/modules/common/manifests/init.pp:
class common inherits config {
  include $classes

  if ($roles) {
    $roles.dig.keys.each |String $role| {
      $roles[$role].each |String $application| {
        $roleClasses = lookup({"name" =>
"role_details.${role}.${application}.classes", "merge" => "deep",
"default_value" => undef})
        if ($roleClasses) {
          include $roleClasses
        }
      }
    }
  }

As I did not find a way put all role-classes to a single variable
(e.g.$roleClasses) I tried to do this in the epp:

<%= tagged("amavisd") %>

It resolves to false. Always.

Does anyone see a way to put all roleClasses into a single variable or
make "tagged" work in the epp or any other way to solve this? I know
the concept of Puppet but there are sometimes challenges where just
describing a state is not sufficient. :)

[helmut@BSDHelmut ~]$ puppet -V
5.5.14
[helmut@BSDHelmut ~]$

Thank you!

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/xn0lwqh7y7j1qws000%40news.gmane.org.

Reply via email to