ReleaseEngineering/PuppetAgain/Modules/buildmaster
This module installs and sets up the buildmaster software. Multiple buildmasters can be installed on the same node. This module supports two different styles of masters, "Mozilla", and "Simple". More detailed descriptions of both are below.
"Mozilla" buildmasters
Mozilla buildmasters are special because they are set-up using external scripts to do some of the the work. To set up a node as Mozilla buildmaster node, use the following snippet in the nodes definition. (configuration should not be in nodes.pp there is already a [bug] for this.)
node "relabs07.build.mtv1.mozilla.com" {
buildmaster::buildbot_master::mozilla {
"bm07-build1":
http_port => 8001,
master_type => "build",
basedir => "build1";
}
buildmaster::buildbot_master::mozilla {
"bm07-build2":
http_port => 8002,
master_type => "build",
basedir => "build2";
}
include toplevel::server::buildmaster
Masters can be one of the following:
- build
- scheduler
- try
- tests
Masters will be installed in:
/builds/buildbot/${basedir}
Secrets
This module fills in a BuildSlaves.py file with a bunch of secrets used to communicate with other services:
- blobber_password
- blobber_username
- Username and password used to communicate with Blobber
- jetperf_oauth_key
- jetperf_oauth_secret
- talos_oauth_key
- talos_oauth_secret
- datazilla authentication tokens
- android_tests_password
- linux_tests_password
- mac_tests_password
- win_tests_password
- Slave passwords, per slave type
- balrog_password
- balrog_username
- Balrog credentials
- tuxedo_password
- tuxedo_username
- tuxedo credentials
"Simple" buildmasters
Simple buildmasters are fully setup by Puppet. Instantiation usually should happen in a toplevel class using a snippet like:
buildmaster::buildbot_master::simple {
"servo1":
basedir => "/builds/buildbot/servo1",
http_port => 8001,
master_cfg => "puppet:///modules/buildmaster/servo/master.cfg";
}
"buildbot_version" can also be passed to install an alternative version of Buildbot.