ReleaseEngineering/How To/Setup a buildbot master: Difference between revisions
< ReleaseEngineering | How To
Jump to navigation
Jump to search
No edit summary |
(Activate virtual env before installing with pip, remove duplicate mysql-python install) |
||
Line 10: | Line 10: | ||
* Install required packages | * Install required packages | ||
<pre> | <pre> | ||
source /builds/buildbot/mymaster/bin/activate | |||
pip install simplejson | pip install simplejson | ||
pip install mysql-python | pip install mysql-python | ||
Line 17: | Line 18: | ||
pip install pycrypto | pip install pycrypto | ||
pip install pyasn1 | pip install pyasn1 | ||
pip install pyopenssl==0.10 | pip install pyopenssl==0.10 | ||
pip install http://hg.mozilla.org/users/clegnitto_mozilla.com/mozillapulse/archive/tip.tar.bz2 | pip install http://hg.mozilla.org/users/clegnitto_mozilla.com/mozillapulse/archive/tip.tar.bz2 |
Revision as of 09:16, 15 March 2011
These instructions are probably incomplete, but should serve as a good starting point for setting up a new buildbot master. If you find something missing or inaccurate, please update!
- Create a new directory for your master, e.g. /builds/buildbot/mymaster
- Create a virtual environment for your master
virtualenv --distribute --no-site-packages -p /tools/python-2.6.5/bin/python /builds/buildbot/mymaster
- Install required packages
source /builds/buildbot/mymaster/bin/activate pip install simplejson pip install mysql-python pip install Twisted==10.1.0 pip install sqlalchemy pip install argparse pip install pycrypto pip install pyasn1 pip install pyopenssl==0.10 pip install http://hg.mozilla.org/users/clegnitto_mozilla.com/mozillapulse/archive/tip.tar.bz2 hg clone http://hg.mozilla.org/build/buildbot (cd buildbot/master; $PYTHON setup.py develop install) (cd buildbot/slave; $PYTHON setup.py develop install) hg clone -b production-0.8 http://hg.mozilla.org/build/buildbotcustom hg clone -b production http://hg.mozilla.org/build/buildbot-configs hg clone http://hg.mozilla.org/build/tools
- Add Makefile
PWD=$(shell pwd) BUILDBOT=$(PWD)/bin/buildbot HG=/tools/python-2.6.5/bin/hg export PYTHONDONTWRITEBYTECODE=1 export PYTHONPATH=/builds/buildbot/mymaster/tools/lib/python start: cd master && $(BUILDBOT) start $$PWD stop: cd master && $(BUILDBOT) stop $$PWD restart: cd master && $(BUILDBOT) restart $$PWD reconfig: cd master && $(BUILDBOT) reconfig $$PWD checkconfig: cd master && $(BUILDBOT) checkconfig update: (cd buildbotcustom && $(HG) pull && $(HG) update -C) (cd buildbot-configs && $(HG) pull && $(HG) update -C) (cd tools && $(HG) pull && $(HG) update -C) version: $(BUILDBOT) --version
- Setup master
mkdir master cd master ln -s ../buildbot-configs/config.py . ln -s ../buildbot-configs/production_config.py localconfig.py etc. --catlee too tired to fill this in right now. add symlinks and run make checkconfig until it works!
- Setup cron jobs
# In /home/cltbld/.mymaster_update_from_files.conf [DEFAULT] database = mysql://buildbot:password@tm-b01-master01.mozilla.org/buildbot master = http://fqdn:8011 name = My master! # In /etc/cron.d/mymaster MAILTO=release@mozilla.com @hourly cltbld (source /home/cltbld/.bash_profile && /builds/buildbot/mymaster/bin/python tools/buildfarm/maintenance/watch_twistd_log.py -t .mymaster-last-time.txt -n mymaster -f cltbld@`hostname --fqdn` -e release@mozilla.com /builds/buildbot/mymaster/master) 15 * * * * cltbld lockfile -60 -r 3 $HOME/lockfile.mymaster_cleanup && (source /home/cltbld/.bash_profile && hg -R tools pull -u && nice -n 19 /builds/buildbot/mymaster/bin/python tools/buildfarm/maintenance/master_cleanup.py -t4 /builds/buildbot/mymaster/master ; rm -f $HOME/lockfile.mymaster_cleanup) >> cleanup.log 2>&1 */10 * * * * cltbld lockfile -60 -r 3 $HOME/lockfile.bbdb 2>/dev/null && (source /home/cltbld/.bash_profile && cd /builds/buildbot/mymaster/master; time nice /builds/buildbot/mymaster/bin/python /builds/buildbot/mymaster/buildbotcustom/bin/update_from_files.py -c /home/cltbld/.mymaster_update_from_files.conf . ; rm -f $HOME/lockfile.bbdb ) >> update.log 2>&1
- Update production-masters.json in tools if appropriate
- Make sure to file an IT bug to get nagios checks added for the master if necessary
- SSH Keys
- Copy production ssh keys (for ffxbld and trybld) to ~/.ssh.
- Make sure you can ssh to ffxbld@dm-pvtbuild01.mozilla.org and ffxbld@stage.mozilla.org
- Make sure NTP is running!