Do yourself a favour, define puppet classes and resources in puppet code. There 
are surprisingly few people who can look at puppet resources in yaml and 
conceptualize which portion is causing that odd ruby+yaml error.

This is a useful model for how to lay that out:

https://puppet.com/docs/pe/2018.1/the_roles_and_profiles_method.html

If you keep only the most significant items in hiera it will be much easier to 
read. Albeit that it's older documentation, this section has the best phrasing 
I've found for this so far:

https://puppet.com/docs/pe/2016.4/r_n_p_full_example.html#the-rules-for-profile-classes

Quoth:

* If your business will always use the same value for a given parameter, 
hardcode it.
* If you can’t hardcode it, try to compute it based on information you already 
have.
* Finally, if you can’t compute it, look it up in your data. To reduce lookups, 
identify cases where multiple parameters can be derived from the answer to a 
single question.


(But maybe not hard-hardcode it, put it in a puppet variable or something.)

On Mon, Aug 06, 2018 at 01:19:45PM +0000, Helmut Schneider 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 puppet-users+unsubscr...@googlegroups.com.
> 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 puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/20180807164459.odzcrdocirljrcwv%40iniquitous.heresiarch.ca.
For more options, visit https://groups.google.com/d/optout.

Reply via email to