Hierahandson
From Gridkaschool
Jump to navigationJump to search
This is our hiera hierarchy:
environments/%{::environment}/hieradata/%{::certname} environments/%{::environment}/hieradata/%{::role} environments/%{::environment}/hieradata/%{::osfamily} environments/%{::environment}/hieradata/common hieradata/common
- Merge the master branch in git, and include the "lab" module. It's trivial, as it just creates /etc/labpurpose
- In the root of your environment in git, at the same level as "modules" and "manifests" "mkdir hieradata"
- cd hieradata
- touch <schoolmachine>.desy.de.yaml where <schoolmachine> is your puppet client machine (ie gridkaschool01.desy.de)
- touch web.yaml data.yaml compute.yaml
- touch RedHat.yaml
- touch common.yaml
- convert the param to the lab class to an automatic hiera call
- use "common".yaml for now
- convert the direct hiera() calls to automatic lookups, with a new param. Remember that if a class is called "foo" and it has a parameter "$bar" then you need a hiera key foo::bar
- In your environment, using at least 2 of the fqdn / role or osfamily yaml files you've created, add different values and see how they get used / override values in other parts of the hierarchy
Bonus:
- Try using hiera_include to include a class