Running Puppet on Debian

Reporting Problems

If you have problems with the released Debian packages (as obtained from Debian), please report bugs to the usual Debian bug submission address, NOT to the Puppet lists or bug tracker.

Package Maintainer

The Debian packages of Puppet is team maintained on Alioth. If you are interested in participating, please join Alioth and request to join the project.

The packaging repository is available through git

Installation

Puppet packages are maintained as part of the standard Debian solution, so you should be able to install Puppet and Facter directly from your regular installation medium using apt or dselect:

# apt-get install puppet

The current stable release of Debian (codenamed “Etch”) comes with Puppet version 0.20.1, but the latest versions of Puppet are available from the unstable repositories. It is an explicit goal of the package maintainer that uploaded packages should work acceptably on the current stable release of Debian.

For up-to-date information on the versions of Puppet in Debian, it is best to refer to http://packages.qa.debian.org/puppet, as it has the latest and greatest information.

Install Puppet packages from Testing on Debian

These packages were previously available in unstable and have now been migrated to testing.

However, even these versions seem to be trailing puppet’s stable release by at least 2 minor versions. A fully up-to-date version is available from Debian experimental. (The below instructions apply, save for replacing testing with experimental)

In order to use these packages you’ll have to pin your configuration. For more info, Google for apt and pinning. Here’s the short version:

\1. Edit /etc/apt/preferences and add the following lines:

Package: *
Pin: release a=testing
Pin-Priority: 1

Package: puppet
Pin: release a=testing
Pin-Priority: 1001

Package: puppetmaster
Pin: release a=testing
Pin-Priority: 1001

\2. Edit /etc/apt/sources.list and add the following lines (change the mirror to your own localized mirror):

deb http://ftp.nl.debian.org/debian/ testing main

\3. Edit /etc/apt/apt.conf.d/release and add:

APT::Default-Release "stable";

\4. Do a “apt-get update” and “apt-get install puppet puppetmaster”. You’ll get the version from testing, without upgrading your whole system to lenny.

If you have a problem installing the packages from unstable or testing on a stock Etch system, please report it as a bug in The Debian BTS.

Storeconfigs

If you want to use the storeconfigs directive, the puppetmaster also needs the packages:

  • rails
  • libsqlite3-ruby1.8

Puppet with Runit on Debian

If you wish to use runit instead of SysV init scripts you can refer to Puppet With Runit page.

Gotchas

The useradd provider needs libshadow-ruby1.8

Install the lsb-release package if you want see lsb* related variables from facter.

This example shows how you can pull these packages in automatically.

class debian {
        package { "libshadow-ruby1.8": ensure => installed }
        package { "lsb-release": ensure => installed }
}

Additional Help

If you are managing more than one Debian release, you may want to refer to Recipes/Debian for some guidance about how Puppet can differentiate between Debian releases. There is also a guide to Bootstrapping With Puppet with Puppet.