Environments allow for the logical separation of different stages of development. A very common workflow for Puppet installations is to create multiple environments and promote code between the different environments. If you are fortunate enough to have Git in your installation, you can use Git branches as environments. This allows you to switch environments just by checking out a different branch. You can promote code between environments by merging branches. When creating your environments, production should be the endpoint in your code progression. A common starting point is dev
, or development. Many installations will have a pre-development or a sandbox environment as well. When you have several environments, the progression between the environments should be well-defined and known to all of your Puppet developers.
Sandbox → Development → Quality Assurance → Performance Testing → Production