Use version 1.1.0 or later of the puppetlabs-cd4pe module to install and configure Continuous Delivery for Puppet Enterprise (PE). This module installs Docker, configures the Continuous Delivery for PE Docker image and service for you, and creates a Docker volume for disk storage. You can also use the module to configure your Continuous Delivery for PE root account and to manage a MySQL container.

CAUTION: Code Manager webhooks are not compatible with Continuous Delivery for PE. If your organization currently uses Code Manager webhooks to deploy code, you must dismantle these webhooks before installing Continuous Delivery for PE.

Install Continuous Delivery for PE with the cd4pe module

Use the puppetlabs-cd4pe module version 1.1.0 or later to install Continuous Delivery for PE.

The puppetlabs-cd4pe module must be used with seven dependent modules. The eight modules and their required versions are as follows:

ModuleRequired version
puppetlabs-cd4pe 1.1.0 or later
puppetlabs-stdlib 4.19.0 or later
puppetlabs-puppet_authorization 0.5.0
puppetlabs-hocon 0.9.3 or later in the 0.x or 1.x series
puppetlabs-concat 1.1.1 or later in the 1.x, 2.x, 3.x, or 4.x series
puppetlabs-docker 3.3.0 or later
puppetlabs-apt 4.4.1 or later
puppetlabs-translate 1.1.0 or later
  1. Add the eight modules listed above to the Puppetfile for each environment against which your compilers compile catalogs.
    A sample Puppetfile entry:
    mod 'puppetlabs-cd4pe', :latest
    # Requirements for cd4pe
    mod 'puppetlabs-concat', '4.2.1'
    mod 'puppetlabs-hocon', '1.0.1'
    mod 'puppetlabs-puppet_authorization', '0.5.0'
    mod 'puppetlabs-stdlib', '4.25.1'
    mod 'puppetlabs-docker', '3.3.0'
    mod 'puppetlabs-apt', '6.2.1'
    mod 'puppetlabs-translate', '1.1.0'
  2. Deploy the updated code to the relevant environments by running puppet code deploy <ENVIRONMENT>.
  3. In the PE console, click Classification. Click Add group and create a new node group with the following specifications.
    • Parent name: PE Infrastructure

    • Group name: Continuous Delivery for PE

    • Environment: production

    • Environment group: Do not select this option

  4. Open the newly created Continuous Delivery for PE node group. Add the server you wish to use as your Continuous Delivery for PE host server to the node group by either creating a rule or pinning the node.
  5. Click Configuration. In the Add new class field, select the cd4pe class and click Add class.
    Note: If the cd4pe class isn't available, click Refresh to update the available class definitions.
  6. To automate upgrades of Continuous Delivery for PE to the latest available version, set the cd4pe_version parameter to latest. Add the parameter and commit your change.
    After the classification change is applied on the next Puppet run, your Continuous Delivery for PE installation automatically upgrades itself whenever a new version is available.
  7. Optional. Customize your Continuous Delivery for PE installation by setting any of the parameters listed in Advanced configuration options. If none of these parameters are set, your installation proceeds with the default settings.
    Important: In order to use the default installation, your Puppet certificate name must be a resolvable DNS hostname. If that is not the case, you must set the resolvable_hostname parameter to a resolvable address where the Continuous Delivery for PE server is reachable. You can use the ${trusted[certname]} fact to set this parameter.
  8. Run Puppet on your Continuous Delivery for PE host server.
    Note: Once the Puppet agent run is complete, Docker downloads the Continuous Delivery for PE image, which can take up to a few minutes.
Continuous Delivery for PE is now installed. Next, complete the configuration of the software.

Configure Continuous Delivery for PE with a task

Once you've completed the installation of Continuous Delivery for PE using the cd4pe module, run a task to configure the software.

Tip: If you prefer to use classification, rather than a task, to configure your Continuous Delivery for PE installation, see Configure a Continuous Delivery for PE module installation using classification.
  1. In the PE console, click Classification. Expand the PE Infrastructure node group and click Continuous Delivery for PE.
  2. Click Run and select Task.
  3. In the Task field, select cd4pe::root_configuration.
  4. Enter parameters for the task, as follows:
    ParameterValueNotes
    root_emailThe email address to associate with the root account.Required.
    root_passwordThe password to associate with the root account. Required.
    resolvable_hostnameThe resolvable hostname where the Continuous Delivery for PE container can be reached.

    For example, if the container resides on a Docker host named mydockerengine.myinc.com , set resolvable_hostname to http://mydockerengine.myinc.com.

    Required only if the agent certificate is not the machine's resolvable internet address.
    agent_service_endpointThe endpoint where the agent service can be reached, in the form http://<resolvable_hostname>:<port>.Required if you set the agent_service_port parameter in the cd4pe class during installation.
    backend_service_endpointThe endpoint where the back end service can be reached, in the form http://<resolvable_hostname>:<port>.Required if you set the backend_service_port parameter in the cd4pe class during installation.
    web_ui_endpointThe endpoint where the web UI can be reached, in the form http://<resolvable_hostname>:<port>.Required if you set the web_ui_port parameter in the cd4pe class during installation.
    storage_providerWhich object store provider to use. Must be one of: DISK, ARTIFACTORY or S3. Defaults to DISK.
    storage_bucketThe name of the bucket used for object storage. Required if using Amazon S3 or Artifactory for object storage.
    storage_endpointThe URL of the storage provider.Required if using Amazon S3 or Artifactory for object storage.
    storage_prefixFor Amazon S3: the subdirectory of the bucket to use.

    For Artifactory: the top level of the Artifactory instance.

    Optional.
    s3_access_keyThe AWS access key that has access to the bucket.Required if using Amazon S3.
    s3_secret_keyThe AWS secret key that has access to the bucket. Required if using Amazon S3.
    artifactory_access_tokenAPI token for your Artifactory instance. Required if using Artifactory.
  5. Click Run job.
  6. When the job is complete, navigate to the URL printed on the task page. Click Trial Mode to start a free seven-day trial. Once this period is complete, you'll be prompted to generate and upload a license. See Generate a license for instructions on creating a free 30-day trial license.
Now that Continuous Delivery for PE is installed and configured, create your individual user account and then move on to these next steps:

Advanced configuration options

Customize your Continuous Delivery for PE installation from the PE console by setting any of the following parameters. If none of these parameters are set, your installation proceeds with the default settings.

Parameters to configure the Docker image and version
The following two parameters are concatenated by the puppetlabs-cd4pe module as follows: image => "${cd4pe_image}:${cd4pe_version}",
cd4pe_imageSet this parameter if you use an internal Docker registry for mirroring containers. Use this parameter to set the image name; use cd4pe_version to set a tag.
cd4pe_versionUse this parameter to specify a particular version of the Continuous Delivery for PE Docker container. Default is latest.
Parameters to configure the database
By default, the puppetlabs-cd4pe module (version 1.3.0 and newer) creates a new installation of PE-PostgreSQL on the node where you installed Continuous Delivery for PE. If you prefer to use Amazon DynamoDB or MySQL, set the parameters in this section.
CAUTION: Changing any of these parameters post-install creates a new database and destroys all data kept in the previous database.
manage_databaseSet this parameter to false to use DynamoDB, or true to use MySQL.
db_providerEnter mysql to use MySQL. Do not set this parameter if using DynamoDB.
db_hostEnter the address of the database. (Required for DynamoDB users, optional for MySQL users.)
db_nameEnter the name of the database. (Required for DynamoDB users, optional for MySQL users.)
db_passEnter the password for the database. (Required for DynamoDB users, optional for MySQL users.)
CAUTION: To set your password successfully, you must set the root_password parameter to Sensitive in Hiera. For instructions, see Setting sensitive parameters in Hiera.
db_portEnter the port the database listens on. (Required for DynamoDB users, optional for MySQL users.)
db_prefix Optional. If you'd like your database tables to share a prefix, such as cdpe-, enter it here.
Parameters to configure the port mappings
agent_service_portDefaults to 7000.
backend_service_portDefaults to 8000.
web_ui_portDefaults to 8080.
Other optional parameters
cd4pe_docker_extra_paramsTo pass any additional arguments to the Docker process running the Continuous Delivery for PE container, specify them as an array.
analyticsTo opt out of analytics data collection, set this parameter to false. To learn about what data we collect, see Analytics data collection.
Back to top
The page rank or the 1 our of 5 rating a user has given the page.
The email address of the user submitting feedback.
The URL of the page being ranked/rated.