DeskTux

Linux on Desktops

User Tools

Site Tools


apps:puppet

This is an old revision of the document!


Puppet

Even if you manage just a handful or two servers, Puppet can already help you to save loads of time and ensures all your systems run in the desired state.

Somehow, I could not find very many or good manuals on how to set up your own (basic) Puppet server on Debian, so I decided to write my own.

Installation & Configuration

The installation in Debian (10 or later) is – as always in Debian – straight forward. Just run an

apt install puppet puppet-master vim-puppet

That last package is not really needed but comes in really handy when editing your Puppet manifests in vim and you want syntax highlighting. While this would be more needed on a git client (which will be discussed here in future) it also is nice to have on the Puppet master.

As for the main configuration file /etc/puppet/puppet.conf I leave the Debian standard for what it is.

Manifests

Your manifests should be in /etc/puppet/code/ and the basic structure looks like this:

/etc/puppet/code
            ├── environments
            │   └── production
            │       └── manifests
            └── modules
                ├── module1
                │   ├── examples
                │   ├── files
                │   └── manifests
                ├── module2
                │   ├── examples
                │   ├── manifests
                │   └── files
                └── moduleX
                    ├── examples
                    ├── files
                    └── manifests

Each manifests directory contains at least your init.pp and possibly other Puppet files, except the environment manifest. The /etc/puppet/code/environments/production/manifests/site.pp very basically looks like this:

# DeskTux main Puppet Configuration
include module1
include module2
include moduleX

In the modules, the files directory is not necessary unless you have files to manage and the examples directory should contain a basic init.pp that looks like this:

include moduleX

That way, you can easily test the code of that module by using puppet apply -t init.pp.

Of course, before testing your code, you should first run it through puppet parser validate and puppet-lint. However, this is not a Puppet code manual, you should check their excellent documentation for that.

Connecting Clients

apps/puppet.1565456751.txt.gz · Last modified: 2019-08-10 19:05 by jens