I have setup Puppet Enterprise server on CentOS Linux 7 (Core).
# /opt/puppetlabs/bin/puppetserver --version
puppetserver version: 2016.5.0.11
I have different client-specific projects and they all have multiple environments (QA, Staging, Prod). I will be using my Puppet server for managing all these projects. I know Puppet provides environments for isolating code but i'm not sure how to implement the kind of design i am thinking of. This is what i would like to have:
puppet_root/
- code/
- environments
- prod/
- project_A
- environment.conf
- hieradata/
- manifests/
- modules/
- project_B
- environment.conf
- hieradata/
- manifests/
- modules/
- staging
- project_A
- environment.conf
- hieradata/
- manifests/
- modules/
- project_B
- environment.conf
- hieradata/
- manifests/
- modules/
- dev
...
...
- modules
- custom_scripts/
Had there been a single client, i know it would have worked without any issue but with multiple clients inside a sub-dir (as shown above), i'm not sure how Puppet will come to know which path to traverse.
UPDATE:
New model i came up with:
puppet_root/
- client_A/
- code/
- modules/
- environments/
- prod/
- environment.conf
- manifests/
- hieradata/
- common.yaml
...
...
- uat/
...
...
- client_B/
- code/
- modules/
- environments/
- prod/
- environment.conf
- manifests/
- hieradata/
- common.yaml
...
...
- uat/
...
...
- custom_scripts/
Any help will be appreciated.