Configure Code Manager
Sections
To configure Code Manager, first enable Code Manager in Puppet Enterprise (PE), then set up authentication, and test the communication between the control repository and Code Manager.
Before you begin: Set up Code Manager.
Complete the following steps to enable and configure Code Manager.
Upgrade from r10k to Code Manager
To upgrade from r10k to Code Manager, you must disable the previous r10k installation.
Code Manager cannot correctly install or update code if other tools run r10k.
- Disable your previous r10k installation.
- Disable any tools that automatically run r10k. Most
commonly, it is the
zack-r10k
module.Note: When you upgrade to Code Manager, you can no longer manually use r10k or thezack-r10k
module.
After you disable r10k, you can configure Code Manager.
Enable Code Manager
Enable Code Manager to connect your primary server to your Git repository.
/etc/puppetlabs/puppetserver/ssh/id-control_repo.ed25519
. Set up authentication for Code Manager
To securely deploy environments, Code Manager needs an authentication token for both authentication and authorization.
To generate a token for Code Manager:
Request an authentication token for deployments
Request an authentication token for the deployment user to enable secure deployment of your code.
By default, authentication tokens have a one-hour lifetime. With the Override default
expiry
permission set, you can change the lifetime of the token to a
duration better suited for a long-running, automated process.
Generate the authentication token using
the puppet-access
command.
The generated token is stored in a file for later use. The default location for storing the token
is ~/.puppetlabs/token
. To view the token, run
puppet-access show
.
Test the control repository
To make sure that Code Manager can connect to the control repository, test the connection to the repository.
puppet-code deploy --dry-run
.
- If the control repository is set up properly, this command fetches and displays the number of environments in the control repository.
- If an environment is not set up properly or causes an error, it does not appear in the returned list. Check the Puppet Server log for details about the errors.
Test Code Manager
Test Code Manager by deploying a single test environment.
puppet-code
deploy my_test_environment --wait
This deploys the test environment, and then returns deployment results with the SHA (a checksum for the content stored) for the control repository commit.
If the environment deploys and returns the deployment results, Code Manager is correctly configured.
If the deployment does not work, review the configuration steps, or refer to Troubleshooting for help.
After Code Manager is fully enabled and configured, you can trigger Code Manager to deploy your environments.
There are several ways to trigger deployments, depending on your needs.
Code Manager settings
After Code Manager is configured, you can adjust its
settings in the PE Master node group, in the puppet_enterprise::profile::master
class.
These options are required for Code Manager to work, unless otherwise noted.
-
puppet_enterprise::profile::master::code_manager_auto_configure
- Specifies whether to autoconfigure Code Manager and file sync.
puppet_enterprise::profile::master::r10k_remote
- The location, as a valid URL, for your Git control repository.
-
puppet_enterprise::profile::master::r10k_private_key
- The path to the file containing the private key used to access all Git repositories. Required when using the SSH protocol; optional in all other cases.
-
puppet_enterprise::profile::master::r10k_proxy
- Optional proxy used by r10k when accessing the Forge. If empty, no proxy settings are used.
-
puppet_enterprise::profile::master::r10k_trace
- Configuration option that includes the r10k stacktrace in the error
output of failed deployments when the value is
true
. -
puppet_enterprise::profile::master::versioned_deploys
- Optional setting that specifies whether code is updated in versioned code directories instead of blocking requests and overwriting the live code directory.
-
puppet_enterprise::master::environment_timeout
- Specifies whether and how long environments are cached, which can
significantly reduce CPU usage of your Puppet Server. You can specify any of these values:
-
0
– no caching -
unlimited
– all environments are cached forever - a length of time for environments to be cached since their last
use, for example
5m
-
To further customize your Code Manager configuration with Hiera, see Customize Code Manager configuration in Hiera.