QA/Automation/Projects/Infrastructure/Puppet
Overview
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 |
Repository: | http://hg.mozilla.org/qa/puppet/ |
Etherpad: | https://etherpad.mozilla.org/automation-puppet |
Roadmap
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:
- How to for hacking on Puppet Again: https://wiki.mozilla.org/ReleaseEngineering/PuppetAgain/HowTo/Hack_on_PuppetAgain
- Create a local clone of the QA puppetagain repository: http://hg.mozilla.org/qa/puppet/
- Talk to the project leads about which tasks are best to take
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 |
Documentation
As a general overview in how Release Engineering at Mozilla is handling Puppet, we suggest to read https://wiki.mozilla.org/ReleaseEngineering/PuppetAgain.
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 https://hg.mozilla.org/qa/puppet 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').
References
- Puppet project website: http://puppetlabs.com/puppet/what-is-puppet
- Puppet documentation: http://docs.puppetlabs.com/
- Books:
- Pro Puppet (second edition)