The Puppet open source repositories for Debian are not currently packaged with a puppet-agent
for ARM architectures. If you need to run a specific Puppet agent version (>=6) you can manually set up the agent and run it with Ruby.
Installing the Puppet Agent via Ruby
Install Ruby 2.7.2 with rvm or an equivalent environment manager:
rvm install 2.7.2
rvm use 2.7.2
Install the puppet
and facter
gems:
gem install puppet facter
If your codebase uses Augeas you will likely receive the error Error: Could not find a suitable provider for augeas. Install the development library and ruby wrapper with:
apt-get install libaugeas-dev
gem install ruby-augeas
Initial Configuration
Create an initial directory structure for Puppet/Facter:
mkdir -p /etc/puppetlabs/puppet/ /etc/puppetlabs/facter/facts.d/
Add a minimal Puppet configuration file:
cat <<EOF > /etc/puppetlabs/puppet/puppet.conf
[main]
server = puppetserver.example.local
environment = production
EOF
Set the System Facts
The distro and ARM architecture are unlikely to be supported by Puppet (including any forge modules you may be using). Running Puppet now can result in errors such as:
Warning: Found multiple default providers for service: init, systemd; using init
If the distro you are using is part of a well-supported family, you can manually set the OS facts. In the following example the OS is set to Debian under /etc/puppetlabs/facter/facts.d/os.yaml
:
operatingsystem: Debian # Raspbian
os:
architecture: armv7l
distro:
codename: buster
description: "Raspbian GNU/Linux 10 (buster)"
id: "Debian" # "Raspbian"
release:
full: '10.11'
major: '10'
minor: '11'
family: "Debian"
hardware: armv7l
name: "Debian" # "Raspbian"
release:
full: '10.11'
major: '10'
minor: '11'
selinux:
enabled: false
OS facts resolved by facter can be queried with:
facter operatingsystem os