Why PE?
As far as possible, I try to use Puppet Enterprise. The GUI is incredibly useful. It provides for example the ability to trigger tasks and plans directly from the GUI.
This is incredibly useful for all teams, small to enterprise.
The other built-in benefit of PE is that it comes with PuppetDB in the can. It is absolutely possible to install PuppetDB and use that with Katello or even the open source version of Puppet, as PuppetDB itself is also open source.
One of the biggest beneft of PuppetDB for me, is the fact that one can use exported resources and configure another host based on fact from any host.
Download the installation binary
The best way to get the binary, is going through their site: https://puppet.com/try-puppet/puppet-enterprise
If you need to deploy via a script, or due to preference, you can get the binary directly from curl.
Set a few variables to make things easy:
On Ubuntu 18.04:
dist="ubuntu"
rel="18.04"
arch="amd64"
Or, for CentOS / RHEL
dist="el"
rel="7"
arch="x86_64"
version="latest"
Use the above variables for the below:
$ platform="${dist}-${rel}-${arch}"
$ filename="puppet-enterprise-${version}-${platform}.tar.gz"
$ url="https://pm.puppet.com/cgi-bin/download.cgi?arch=${arch}&dist=${dist}&rel=${rel}&ver=${version}"
$ curl -v -L -o ${filename} "${url}"
The actual installation
Next up, import the Puppet public key:
wget -O - https://downloads.puppetlabs.com/puppet-gpg-signing-key.pub | gpg --import
I generally prefer the text-based install, as I don’t always have firewall-free access to port 3000 of the host. As a result, I will go through the text-based installer.
First, unpack the installer you downloaded
tar -xf <TARBALL_FILENAME>
From inside the installer directory, execute the installer binary
sudo ./puppet-enterprise-installer
Select text-mode when prompted.
Specify your required installation parameters.
Once the install is done, run the puppet agent as many times as is required until there are no more changes, normally around twice.
sudo puppet agent -t
If the environment can’t find the puppet binary, either close and re-open a terminal, or specify the full path to the puppet binary.
That is it! You now have a working PE installation.
Next step will be to set the installation up for CI/CD code deployment, either via r10k, in which case you can use the post about Katello CI https://linuxadmin.co.nz/index.php/2019/09/12/configure-your-puppet-environment-for-auto-deployment-of-puppet-code/
Or, you can use the PE version called code-manager. Code manager is basically a wrapper around r10k, but does make some things easier and integration is generally easier; but I’ll cover that in a future post!