Automate PAM and Puppet application online installations
During a fresh online 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.
Before you begin
Ensure that your system meets the PAM system requirements.
- Install Puppet Application Manager. For detailed instructions, see PAM HA online installation.
-
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:- Replace
<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. - Replace
<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,
change the
force-ssl-redirect
annotation totrue
. -
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"
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. - Replace
-
Write your license file and the configuration values generated in step 1 to the
following locations:
- Write your license file to
./replicated_license.yaml
- Write your configuration values to
./replicated_config.yaml
- Write your license file to
-
Add the Puppet application definition to Puppet Application Manager with the license file and configuration
values, passing in the Puppet Application Manager password you set
in step 4:
kubectl kots install <APPLICATION NAME> --namespace default --shared-password <YOUR CHOSEN PASSWORD> --port-forward=false \ --license-file ./replicated_license.yaml --config-values ./replicated_config.yaml
Note: If you want to install a specific version of the application, include the--app-version-label=<VERSION>
flag in the install command. - Wait five minutes to allow the software time to process the change.
-
Navigate to
http://<NODE IP ADDRESS>:8800
and log in with the Puppet Application Manager password.Your configuration values are applied, and if preflight checks have passed, the application is deployed and in the process of starting up.The application's status on the Application tab is shown as Missing for several minutes while deployment is underway. To monitor the deployment's progress, runkubectl get pods --watch
.When the deployment is complete, the application status changes to Ready.
-
Update your DNS or
/etc/hosts
file to include the hostname you chose during configuration. -
Installation is now complete! Navigate to
https://<HOSTNAME>
and sign into Puppet application.
Related information