Puppet🔗
Install puppet 6:🔗
# jessie
wget https://apt.puppet.com/puppet6-release-jessie.deb
# stretch
wget https://apt.puppet.com/puppet6-release-stretch.deb
# buster
wget https://apt.puppet.com/puppet6-release-buster.deb
# Now install the repo:
dpkg -i puppet6-release-*
# Update
apt update
# Install puppet agent:
apt install puppet-agent
# Only run this if you're making a puppet server/master
apt install puppetserver
# Puppet agent post-config:
# Put this in /etc/puppetlabs/puppet/puppet.conf
# And remember to change the values accordingly
[main]
server=puppet.runur.rocks
certname=SERVER.runur.rocks
# Then make some symbolic links so you don't have to write the full path.
ln -s /opt/puppetlabs/bin/puppet /usr/bin/puppet
ln -s /opt/puppetlabs/bin/facter /usr/bin/facter
# Now make a catalogue run, and you're finished!
puppet agent -t
SKRIVA EINA VEGLEIÐING UM HVUSSU MAN ÓVIRKAR EINA DEBIAN KONTU VIÐ PUPPET UTTTAN AT STRIKA KONTUNA🔗
Puppet communication pattern:🔗
- Agent sends facts to master and requests a catalogue.
- Master compiles and returns the node's catalogue using the sources of information the master has access to.
- Agent applies the catalogue to the node by checking each resource the catalogue describes. If it finds resources not in the desired state, it makes the changes necessary to correct them. Or, in no-op mode, it assesses what changes would be needed to reconsole the cataloge.
- Agent reports back to master.
Masters and agents communicate by HTTPS using SSL certificates.
Settings → puppet/puppet.conf
Could also be → auth.conf
or → puppetdb.conf
config_files.html (url)
Configuration files:
- puppet.conf (main config)
- environment.conf (per-environment settings)
- fileserver.conf (custom file-server mount points)
- puppetdb.conf (PuppetDB server locations)
- hiera.yaml (data lookup configuration)
- autosing.conf (basic certificate autosigning)
- csr_attributes.yaml (certificate extensions)
- custom_trusted_iod_mapping.yaml (short names for cert extension OIPs)
- device.conf (network hardware access)
- routes.yaml (advanced plugin routing)