Install Continuous Delivery in an air-gapped environment

Before you begin:

If your Continuous Delivery 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 and podman-plugins 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 5.x host, or any other system.
  2. Create the Continuous Delivery 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.9.0.tar.gz
    • https://storage.googleapis.com/cd4pe-images/gcr.io_platform-services-297419_cd4pe_continuous-delivery-for-puppet-enterprise_5.9.0.tar.gz
    • https://storage.googleapis.com/cd4pe-images/gcr.io_platform-services-297419_query-service_5.9.0.tar.gz
    • https://storage.googleapis.com/cd4pe-images/gcr.io_platform-services-297419_cd4pe-postgresql_5.9.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.9.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.9.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 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 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.