Install Continuous Delivery for PE

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.

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, plus a module to manage job hardware. The modules and their required versions are as follows:
Module Required version
puppetlabs-cd4pe 1.1.0 or later in the 1.x or 2.x series

The Nodes page requires version 2.0.1 or later

puppetlabs-stdlib 4.19.0 or later
puppetlabs-puppet_authorization 0.5.0 or later
puppetlabs-hocon 0.9.3 or later
puppetlabs-concat 2.1.0 or later
puppetlabs-docker 3.3.0 or later
puppetlabs-apt 4.4.1 or later
puppetlabs-translate 1.1.0 or later
puppetlabs-cd4pe_jobs
Note: This module manages job hardware running a Puppet agent. Install this module with Continuous Delivery for PE version 3.4.0 or newer.
1.0.0 or later
puppetlabs-pipelines
Note: This module manages job hardware running the deprecated Continuous Delivery agent. Install this module only if you are installing Continuous Delivery for PE version 3.3.0 or older.
1.0.1
  1. Add the 10 modules listed above to the Puppetfile for each environment against which your compilers compile catalogs.
    A sample Puppetfile entry:
    mod 'puppetlabs-cd4pe', '2.0.2'
    # Requirements for cd4pe
    mod 'puppetlabs-stdlib', '8.1.0'
    mod 'puppetlabs-puppet_authorization', '0.5.1'
    mod 'puppetlabs-hocon', '1.1.0'
    mod 'puppetlabs-concat', '7.1.1'
    mod 'puppetlabs-docker', '4.1.2'
    mod 'puppetlabs-apt', '8.3.0'
    mod 'puppetlabs-translate', '2.2.0'
    mod 'puppetlabs-cd4pe_jobs', '1.5.0'
    # Required only if using Continuous Delivery agents for job hardware
    mod 'puppetlabs-pipelines', '1.0.1'
  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.
    Important: The Continuous Delivery for PE host server must run the same operating system and version as your Puppet master. Do not install Continuous Delivery for PE on the same server as your Puppet master.
  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. Automate upgrades of Continuous Delivery for PE to the latest available version in the 3.x series by setting the cd4pe_version parameter to 3.x. 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 (hostname or IP 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 a few minutes.
Results
Continuous Delivery for PE is now installed.
What to do next
See Configure Continuous Delivery for PE with a task to complete the configuration of the software and sign in.

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:
    Parameter Value Notes
    root_email The email address to associate with the root account. Required.
    root_password The password to associate with the root account. Required.
    resolvable_hostname The 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_endpoint The 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_endpoint The 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_endpoint The 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_provider Which object store provider to use. Must be one of: DISK, ARTIFACTORY or S3. Defaults to DISK.
    storage_bucket The name of the bucket used for object storage. Required if using Amazon S3 or Artifactory for object storage.
    storage_endpoint The URL of the storage provider. Required if using Amazon S3 or Artifactory for object storage.
    storage_prefix For Amazon S3: the subdirectory of the bucket to use.

    For Artifactory: the top level of the Artifactory instance.

    Optional.
    s3_access_key The AWS access key that has access to the bucket. Required if using Amazon S3.
    s3_secret_key The AWS secret key that has access to the bucket. Required if using Amazon S3.
    artifactory_access_token API 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.
What to do next
Now that Continuous Delivery for PE is installed and configured, create your individual user account, then follow our Getting started with Continuous Delivery for PE guide starting at Step 3.

Advanced configuration options

Customize your Continuous Delivery for PE installation from the PE console by setting any of the following parameters on the cd4pe class. 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_image Set 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_version Use this parameter to specify a particular version of the Continuous Delivery for PE Docker container. Specify 3.x to use the 3.x series.
Parameters to configure the database

DEPRECATED: Support for MySQL and Amazon DynamoDB external databases is deprecated and will be removed in a future release.

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_database Set this parameter to false to use an external DynamoDB or MySQL server.

Set this parameter to true to use Continuous Delivery for PE-managed PostgreSQL or MySQL.

db_provider Enter mysql if you're using MySQL. Do not set this parameter if using DynamoDB.
db_host Enter the address of the database. (Required for external MySQL and DynamoDB.)
db_name Enter the name of the database. (Required for external MySQL and DynamoDB.)
db_pass Enter the password for the database. (Required for external MySQL and DynamoDB.)
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_port Optional. Enter the port the database listens on.
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_port Defaults to 7000.
backend_service_port Defaults to 8000.
web_ui_port Defaults to 8080.
Other optional parameters
cd4pe_docker_extra_params To pass any additional arguments to the Docker process running the Continuous Delivery for PE container, specify them as an array. For example: ["--add-host gitlab.puppetdebug.vlan:10.32.47.33","-v /etc/puppetlabs/cd4pe/config:/config","--env-file /etc/puppetlabs/cd4pe/env-extra","-e CD4PE_LDAP_GROUP_SEARCH_SIZE_LIMIT=250", ]
analytics To opt out of analytics data collection, set this parameter to false. To learn about what data we collect, see Analytics data collection.