User:Djmitche/New Releng Puppet Infrastructure

From MozillaWiki
< User:Djmitche
Revision as of 23:38, 24 August 2011 by Djmitche (talk | contribs) (Created page with "This is a complete re-implementation of puppet for release engineering. = Goals = * A modern puppet installation, completely specifying '''all''' releng infrastructure (includin...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This is a complete re-implementation of puppet for release engineering.

Goals

  • A modern puppet installation, completely specifying all releng infrastructure (including Windows)
  • Manifests structured to apply settings across all machines, rather than distinct sets of manifests for each slave silo
  • Usable by external parties, both inside and outside of mozilla

General

The releng puppet masters are managed by IT (in fact, managed by IT's puppet infrastructure).

We will be using the same puppet versions as the rest of Mozilla. Currently, this is Puppet-2.7.1. As IT upgrades, the masters will be upgraded; releng can then upgrade the clients using puppet itself.

Manifests

The manifests are currently in http://hg.mozilla.org/users/dmitchell_mozilla.com/puppet, but this will move to http://hg.mozilla.org/build/puppet eventually.

Masters

There is currently one puppet master, although long-term we will have multiple masters.

The masters update their manifests from mercurial once every 5 minutes, with a bit of "splay" added (so it does not always occur on the 5-minute mark). Any errors during the update are emailed, as well as a diff of the manifests when they change; the latter forms a kind of change control.

Masters currently autosign, although this will change soon.

Clients

Client images should proceed automatically from imaging to a fully-operational state. The base image for each OS is an OS install plus whatever minimal equipment is required to invoke puppet, which is responsible for making the system operational.

I've begun work on this for CentOS 6.0 in User:Djmitche/CentOS-60 Base Image.