From MozillaWiki
Jump to: navigation, search


To be able to run our Mozmill CI system, a couple of maintenance tasks have to be performed regularly. So keeping up-2-date with the latest OS security updates, or by installing the latest application for Flash and Java. Given the amount of machines in our cluster this should not be a manual task anymore, but automated via Puppet.

Our goal is to setup a system, which allows to centrally manage the system configuration of all nodes and to ship updates automatically to all of the nodes.

Name: Puppetizing Mozmill CI
Leads: Henrik Skupin, Andrei Eftimie, Andreea Matei
Contributors: n/a
Tracking Bug: bug 997738


Date Version Details
June 30th, 2014 - Updates on nodes for OS X and Ubuntu are managed by Puppet
Sep 30th, 2014 - Updates on nodes for Windows are managed by Puppet

How To Contribute

If you are interested in helping us on this project, and you also want to learn more about automating the installation and configuration of tools, or the underlying system, you might want to check the following links:

List of Tasks

In the following table you can find all the tasks, which have to be done before we can sign-off from the next goal on the road map. The entries are sorted by action to be taken, so we have to take them mostly from top to down. Some parallelism should be possible.

Task Owner Status
Add responsible admins to the allowed PupppetAgain users (bug 1008872) Not Started
Support proxies on Ubuntu and OS X (bug 997721) Henrik Not started
Auto-connect Jenkins slaves to the master during start-up (bug 1007106) Andreea In Q3
Setup Puppet for Ubuntu (bug 973535) Henrik Not started
Setup Puppet for Mac (bug 996629) Henrik Not started
Create module for PuppetAgain to install Flash (bug 1008879) Not started
Create module for PuppetAgain to install Java (bug 1008880) Andreea Started
Restart the node after a testrun has been executed for a clean and updated environment Future
Setup Puppet for Windows (bug 1008878) Future


As a general overview in how Release Engineering at Mozilla is handling Puppet, we suggest to read

For our own Puppet instance we want to make sure to be able to setup the system, and install all necessary tools. The primary platforms we put focus on are Linux (Ubuntu) and OS X. Windows will follow later. So what we need is to setup networking including the proxy settings, VNC and SSH access, and other system preferences. Also the installation and configuration of Flash and Java has to be covered.

Later with also Windows enabled via Puppet, we will have to take a look in how to setup a new node completely automated via Puppet. Most likely OS X will be the first platform, which will be covered for that.

For any kind of modifications to Puppet modules, manifest, and files, the changes will land on the default branch of the repository. Once the changes have been tested and been approved they will land on the production branch, where puppet will pick those up and apply to existing machines during the next reboot. In case of testing for staging we will have to use an user environment with Puppet (see 'puppet -env').