If you are new to Puppet Enterprise, you will first need a control repository to manage your environment. You can find a base template for a Puppet control repository here. Clone that repo and follow the instructions for setting it up. Additional information on managing environments with a control repository can be found in the Puppet Docs here.

Note: The name of the default branch of your control repository must match the name of your environment.
Note: Additional control repositories are only necessary when managing permissions/restrictions (ACL boundary differences) or when there are conflicting Puppetfiles (e.g. different module versions between environments). 

To configure a control repository on a Puppet Enterprise instance, you will need to provide the SSH URL to your Puppet control repository. Make sure none of your branches are called production as that will conflict with the PE instance's master servers.

ITS recommends using the ITS Gitlab service (https://its.uiowa.edu/gitlab) to host the control repository.

The puppet-git user will need Reporter access to you control repositories. Generally, we recommend that you create a 'puppet' subgroup in GitLab, grant Reporter access to puppet-git on the subgroup and then put all of your modules/control repositories into that subgroup. It is also recommended to separate control repositories and place modules in separate repositories and then enumerate them all in the Puppetfile.

If you don't have a control repository, please see https://its.uiowa.edu/gitlab for instructions on how to get space in the ITS Gitlab service for setting one up. After you have a project set up, please contact the ITS Puppet Infrastructure team (its-puppet-infra@iowa.uiowa.edu) for instructions on the basics of a new control repo.

Article number: 
Last updated: 
September 19, 2019