Creating a puppet environment

Creating a new environment for development or production. Dividing these two is important. Don´t update or reconfigure a node, module or most important your puppetmaster/puppet agent before you are sure it will not affect the current production environment. So test before implement.

Firstly decide what your new environment should be named and make a folder structure. I have decided to call mine ”development”. Mostly because I would like to follow my own words and have a development environment to test and play with that do not effect current working nodes

Allowed Environment Names

Environment names can contain lowercase letters, numbers, and underscores. That is, they must match the following regular expression:


  • environments
    • development
      • manifest
      • modules


Tell puppet where the environments are located and add this to main section in the puppet.conf


sudo mkdir -p /etc/puppt/environments/development/manifest

sudo mkdir -p /etc/puppt/environments/development/modules

Enviroment.conf which can locally override several settings, including modulepath and manifest.

sudo touch /etc/puppet/environments/development/environement.conf

Edit the file and add


manifest = $confdir/environments/development/manifests

modulepath = $confdir/environments/development/modules

Test that is working with:

sudo puppet config print modulepath –section master –environment development

Great it works

Now to install a module into the environments

No installed moduels

As a test I will install a standard puppetlabs module — stdlib.

puppet module install puppetlabs-stdlib –environment development

And if I do a puppet module list again on the development environment I can see that it is installed

As for the default environment

puppet module listNotice the puppetlabs-stdlib module at the bottom. The version is different from the one we installed in the development environment.

So how to can a client see the different between the development and the default environment?

Lets take a look on that in a future post

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.