Puppet manual

From Nasqueron Agora
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This document is historical. We adopted SaltStack to manage Nasqueron servers configuration as code.


Architecture

  • A configuration files repository on Gerrit, managed like an open source project with a Git repository.
  • A server which send configuration files to clients. This is currently installed on Grip. It should be migrated to Ysul.
  • The others servers are puppetized and received their configuration like Warg.

The goal of the game is you wipe a server, you have it reinstalled automatically as it were with all services fully operational.

It means each time you deploy manually anything on the servers, you have then to create a Puppet manifest.

Prepare the server

On FreeBSD, you'll find 5 Puppet related ports:

  • /usr/ports/net-mgmt/nagios-check_puppet - a Nagios plugin to check if puppetd and puppetmasterd are alive and to check if state.yaml is up to date
  • /usr/ports/sysutils/puppet - Puppet 3.x (currently 3.0.1)
  • /usr/ports/sysutils/puppet-lint - Puppet Linter
  • /usr/ports/sysutils/puppet26 - Puppet 2.6.x (currently 2.6.17)
  • /usr/ports/sysutils/puppet27 - Puppet 2.7.x (currently 2.7.19)

We use sysutils/puppet and sysutils/puppet-lint.

Linting configuration files

  • puppet-lint <file>
  • Add require 'puppet-lint/tasks/puppet-lint' to Rakefile and run the command rake lint. Useful for Jenkins.

Useful links