[tahoe-dev] How to set up a buildslave?

Zooko Wilcox-O'Hearn zooko at zooko.com
Sun Dec 6 11:25:27 PST 2009


On Sunday, 2009-12-06, at 11:27 , <kyle at arbyte.us> wrote:

> I would like to set up my openbsd/amd64 system to be a buildslave.   
> How do I do this?

I'll summarize to tahoe-dev, and then let's take the back-and-forth  
details of the setup into private mail so as not to bore the non- 
buildbot-operating mailing list readers.

Step 1: install buildbot on your system (presumably using the OpenBSD  
port)

This is also the part where you choose what sort of controls you want  
to have over your buildslave.  I would strongly advise you not to run  
your buildslave under your user account, and (duh) not to give it any  
sort of elevated privileges such as root!

So, running under a separate user account without high privileges is  
definitely a good idea, but since you're an OpenBSD user I guess I  
don't need to tell you this.

Also you can use other mechanisms to lock it down more like jail,  
chroot, etc.  David Abrahams uses Solaris Zones to contain his  
buildslaves.  I don't know what particular features Zones offer.  I  
wonder if this means he can use ZFS snapshots to rewind the state of  
the filesystem before running each build.  That would be cool.  Brian  
Warner and the other buildbot maintainers have been hacking on some  
tricks to set up your buildslaves inside a full virtual machine so  
that you can have a pristine machine for every build -- e.g. "This is  
a fresh install of OpenBSD 4.6 with nothing added except for buildbot  
and its dependencies.".

Personally I don't (yet) use any such fancy techniques -- I just run  
my buildslaves under a separate user account which doesn't have  
access to my personal stuff or to root privileges.

Step 2: choose a name for your buildslave which will fit into the  
list of buildslave names: http://allmydata.org/buildbot/buildslaves .  
A hostname would be a good choice.

Step 3: Receive a password from me in email.

Step 4: create the buildslave with "buildbot create-slave $BASEDIR  
dev.allmydata.com:9987 $SLAVENAME $PASSWORD"

detailed docs: http://djmitche.github.com/buildbot/docs/0.7.11/ 
#Creating-a-buildslave

Then "buildbot start $BASEDIR".

Step 5: Please do this two more times, one for pycryptopp and one for  
zfec.  Those two use the same $SLAVENAME and $PASSWORD and hostname  
("dev.allmydata.com"), but a different $BASEDIR (whatever directory  
you want -- I personally use a different user account for my tahoe- 
lafs, pycryptopp, and zfec buildslaves), and a different port  
number.  Port 9987 == tahoe-lafs, port 10998 == pycryptopp, port  
12987 == zfec .


Okay, once you've gotten all this working then we'll see your OpenBSD/ 
amd64 machine on the buildbot pages and we'll see how well Tahoe-LAFS  
passes unit tests on your platform.  Eventually I would like to go on  
to the next step, which is integrating Tahoe-LAFS into the official  
OpenBSD package system (ports) and adding tests to check whether  
Tahoe-LAFS is still correctly building from its ports package.  But  
that is for another day.


Regards,

Zooko


More information about the tahoe-dev mailing list