Install Continuous Delivery (CD) in an air-gapped environment

Before you begin:

If your Continuous Delivery (CD) host is air-gapped, ensure the following packages are installed on the host before installing Continuous Delivery:

  • puppet-agent 7.30.0 or later
  • relevant container runtime (e.g.: Docker 26.1.3 or Podman 9.4.9+)
  • Zip 3.0 or later
  • Logrotate 3.14.0 or later
  • Ruby 2.5.9 or later
Ruby is only required for Bolt versions prior to 3.30.0.
  1. Install Bolt version 3.27.4 or later on a jumphost. This can be the intended Continuous Delivery (CD) 5.x host, or any other system.
  2. Create the Continuous Delivery (CD) Bolt project and switch to that directory.
    Copy
    mkdir cd4pe-bolt-project 
    cd cd4pe-bolt-project
    bolt project init cd4pe_bolt_project
    If your jumphost is air-gapped, ensure the following images are available to the jumphost under cd4pe-bolt-project/downloads/cd4pe/images before installing Continuous Delivery:
    • https://storage.googleapis.com/cd4pe-images/gcr.io_platform-services-297419_teams-ui_5.10.0.tar.gz
    • https://storage.googleapis.com/cd4pe-images/gcr.io_platform-services-297419_cd4pe_continuous-delivery-for-puppet-enterprise_5.10.0.tar.gz
    • https://storage.googleapis.com/cd4pe-images/gcr.io_platform-services-297419_query-service_5.10.0.tar.gz
    • https://storage.googleapis.com/cd4pe-images/gcr.io_platform-services-297419_cd4pe-postgresql_5.10.0.tar.gz
  3. Edit the bolt-project.yaml file’s modules section. Change the sections in one of the following ways:
    • If the jumphost can connect to the internet you change the modules section to:
      modules:
      - name: puppetlabs/cd4peadm
        version_requirement: 5.10.0
    • If the Bolt jumphost is also air-gapped, install the modules using the method outlined in Installing and managing modules from the command line for air-gapped installation. Use cd4pe-bolt-project/.modules as your modulepath if you’re unsure. Then, change the modules section in your bolt-project.yaml to:
      modules:
      - name: puppetlabs/cd4peadm
        version_requirement: 5.10.0
        resolve: false
      ### if you are using podman, you don't need anything below this line
      - name: puppetlabs/docker
        version_requirement: 9.1.0
        resolve: false
      - name: puppetlabs/apt
        version_requirement: 9.4.0
        resolve: false
      - name: puppetlabs/powershell
        version_requirement: 6.0.0
        resolve: false
      - name: puppetlabs/pwshlib
        version_requirement: 1.1.1
        resolve: false
      - name: puppetlabs/reboot
        version_requirement: 5.0.0
        resolve: false
      - name: puppetlabs/stdlib
        version_requirement: 9.6.0
        resolve: false
  4. Install the cd4peadm module and its dependencies using the command:
    bolt module install
  5. Edit the inventory.yaml file in your Bolt project with the connection information for the host on which Continuous Delivery (CD) 5.x is to be installed. For example:
    Copy
    ---
    groups:
      - name: cd4pe-nodes
        config:
          transport: ssh
          ssh:
            host-key-check: false
            native-ssh: true
            private-key: /path/to/your/private/key
            user: root
        targets:
          - cd4pev5.<yourcompany.com>

    If you are installing on a localhost, use the following inventory.yaml instead:

    Copy
    ---
    groups:
      - name: cd4pe-nodes
        config:
          transport: local
        targets:
          - uri: localhost
  6. Install Continuous Delivery (CD) on the target host using:
    bolt plan run cd4peadm::install
Results
You can now log into the application at the resolvable hostname with the admin username and password you provided during the installation.