Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I'm not sure if it's good idea to bypass the environment isolation. It might lead to strange behavior. Anyway, it could be done by updating your hiera.yaml file on the puppet master (puppetserver).

---
:hierarchy:
    - "env/%{::environment}"
    - "env/%{::shared_environment}"
    - "common"
:merge_behavior: deeper

Where environment is set by Puppet and ::shared_environment would be a custom fact set to preprod (in case of production env). Then you'll have hierarchy like this:

hieradata/
  production/
     production_specific_config.yaml
  preprod/

with environment specific settings. Also it might be good idea to use merge_behavior: deeper (deep_merge gem) in order to avoid copying whole configurations between environments.