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.