Well the exact answer to your question is:
lookup("roles::${category}::${class}::classes", Array, 'unique').include()
However, the code you've shown is implementing a hierarchy for class
assignment duplicative of the Hiera hierarchy. Why not use Hiera's
hierarchy to your advantage?
hiera.yaml:
hierarchy:
- name: "Role data"
path: "roles/%{facts.category}.yaml"
Then have an array named classes, and just use
lookup('classes', Array, 'unique').include()
Much easier. Don't make your own hierarchy, make use of Hiera.
On Mon, Aug 6, 2018 at 6:22 AM Helmut Schneider <[email protected]> wrote:
> Hi,
>
> I want to include hiera classes.
>
> ---
> roles::webserver::apache::classes:
> - my_apache
> roles::backup::bacula::classes:
> - bacula
> roles::timeserver::ntpd::classes:
> - ntpd
> roles::databaseserver::mysql::classes:
> - mysqld
>
> I used to use the follwoing (ugly) code in nodes.pp to do so:
>
> if ($roles) {
> $roles.each |$category, $classes| {
> if ($classes) and (category) {
> $classes.each |$class| {
> if ($class) {
> hiera_include ("roles::${category}::${class}::classes", {})
> }
> }
> }
> }
> }
>
> Is there a better way e.g. using lookup?
>
> 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/xn0lddu4bbmleo000%40news.gmane.org
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
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/CANsGaEoXH6fCnSaL9X%2B4cisFixOVVp00rzWOchBM5fyxiEnJgA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.