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. Download that repository, rename the directory and alter the main branch to be named for an environment. Then add/push that to GitLab. 

Additional information on managing environments with a control repository can be found in the Puppet Docs here. Environments can only be named with alphanumerics and underscores '_' and no dashes '-'. Also, 'production' is reserved for use by ITS. 

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 Puppet Enterprise server. 

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

The puppet-git user will need Reporter (read-only) access to your 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 set 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: 
115506
Last updated: 
September 22, 2022
Service: