Automate PAM and Puppet application offline installations
During a fresh offline installation of Puppet Application Manager (PAM) and a Puppet application, you have the option to configure the software automatically rather than completing the installation script interview.
Ensure that your system meets the PAM system requirements.
- Install Puppet Application Manager. For detailed instructions, see PAM HA offline install.
Define the configuration values for your Puppet application installation, using Kubernetes YAML format.
apiVersion: kots.io/v1beta1 kind: ConfigValues metadata: name: app-config spec: values: accept_eula: value: has_accepted_eula annotations: value: "ingress.kubernetes.io/force-ssl-redirect: 'false'" hostname: value: "<HOSTNAME>" root_password: value: "<ROOT ACCOUNT PASSWORD>"Tip: View the keyword names for all settings by clicking View files > upstream > config.yaml in Puppet Application Manager.Replace the values indicated:
Note: The automated installation automatically accepts the Puppet application end user license agreement (EULA). Unless Puppet has otherwise agreed in writing, all software is subject to the terms and conditions of the Puppet Master License Agreement located at https://puppet.com/legal.
<HOSTNAME>with a hostname you want to use to configure an Ingress and to tell job hardware agents and web hooks how to connect to it. You might need to configure your DNS to resolve the hostname to your Kubernetes hosts.
<ROOT ACCOUNT PASSWORD>your chosen password for the application root account. The root account is used to administer your application and has full access to all resources and application-wide settings. This account must NOT be used for testing and deploying control repositories or modules.
Optional. These configuration values disable
HTTP-to-HTTPS redirection, so that SSL can be terminated at the
load balancer. If you want to run the application over SSL only,
Optional. If your load balancer requires HTTP health
checks, you can now enable Ingress settings that do not require
Server Name Indication (SNI) for
/status. To enable this setting, add the following to the config values statement:
enable_lb_healthcheck: value: "1"
Write your license file and the configuration values generated in step 1 to the
- Write your license file to
- Write your configuration values to
- Write your license file to
Download the application bundle:
curl -L <APPLICATION BUNDLE URL> -o <APPLICATION BUNDLE FILE>
Copy the application bundle to your primary and secondary nodes and unpack
tar xzf ./<APPLICATION BUNDLE FILE>
Run the application install command on your primary node. Replace the
<YOUR CHOSEN PASSWORD>,
<APPLICATION BUNDLE FILE>values in the example below with your own values:
KOTS_PASSWORD=<YOUR CHOSEN PASSWORD> kubectl kots install <APPLICATION NAME> --namespace default --shared-password $KOTS_PASSWORD --license-file ./license.yaml --config-values ./config.yaml --airgap-bundle ./<APPLICATION BUNDLE FILE> --port-forward=false # wait several minutes for the application to deploy; if it doesn’t show up, preflights or another error might have occurred