From MozillaWiki
Jump to: navigation, search

This is an experimental reference platform being deployed on KVM servers in scl1. It's based on the raw CentOS-5.5 image, and IT's puppetizing process. The idea is that, aside from getting puppet installed, the entire slave configuration is specified by puppet.

This is not tested to work as a buildslave!

From a Raw Install

scp root@buildbot-master06:/etc/yum.repos.d/* /etc/yum.repos.d/
scp root@buildbot-master06:/etc/pki/rpm-gpg/* /etc/pki/rpm-gpg/
yum clean all
yum -y update glibc yum* rhn* rpm* dnsmasq lftp mtr rsync syslinux udftools

Note that none of the above repos have an old enough version of puppet, so..

scp linux-ix-ref:/var/cache/yum/epel/packages/puppet-0.24.8-4.el5.noarch.rpm .
# get deps
yum -y install puppet
rpm -e puppet
rpm -i puppet-0.24.8-4.el5.noarch.rpm
mkdir -p /var/lib/puppet/ssl/{private_keys,certs} /var/lib/puppet/state
chown -R puppet /var/lib/puppet

Set up some stuff puppet doesn't know to set up (yet - see bug 640706)

mkdir /builds
mkdir /builds/slave
chown cltbld /builds/slave

to fix

err: //Node[build]/base/centos5/Package[libnotify-devel]/ensure: change from absent to present failed: Execution of '/bin/rpm -i --oldpackage' returned 1: error: Failed dependencies:
       dbus-devel >= 0.90 is needed by libnotify-devel-0.4.2-6.el5.x86_64
       dbus-glib-devel >= 0.70 is needed by libnotify-devel-0.4.2-6.el5.x86_64
       glib2-devel >= 2.2.2 is needed by libnotify-devel-0.4.2-6.el5.x86_64


yum install dbus-devel dbus-glib-devel glib2-devel


(1/10): dbus-glib-devel-0.73-10.el5_5.x86_64.rpm 
(2/10): dbus-glib-devel-0.73-10.el5_5.i386.rpm   
(3/10): pkgconfig-0.21-2.el5.x86_64.rpm          
(4/10): dbus-libs-1.1.2-15.el5_6.x86_64.rpm      
(5/10): dbus-libs-1.1.2-15.el5_6.i386.rpm        
(6/10): dbus-1.1.2-15.el5_6.x86_64.rpm           
(7/10): glib2-devel-2.12.3-4.el5_3.1.i386.rpm    
(8/10): glib2-devel-2.12.3-4.el5_3.1.x86_64.rpm  
(9/10): dbus-devel-1.1.2-15.el5_6.x86_64.rpm     
(10/10): dbus-devel-1.1.2-15.el5_6.i386.rpm      

This one

notice: //Node[build]/base/centos5/buildslave::cleanup/Exec[find /tmp/* -mmin +15 -print | xargs -n1 rm -rf]/returns: executed successfully
err: //Node[]/vm/Mount[builds]/ensure: change from present to mounted failed: Execution of '/bin/mount -o noatime /builds' returned 32: mount: special device /dev/sdb1 does not exist

requires using a 'kvm' class instead of 'vm' from the node, and that has some knock-on effects in other dependencies, sadly - see bug 640706

Start running puppet

puppetd --test --server=$whatever

Once that's done, make puppet and buildbot start at boot:

chkconfig puppet on

To get a working buildslave

Execute the instructions outlined in, specifically:

yum install \
  cvs zip gcc-c++ glib2-devel gtk2-devel fontconfig-devel libnotify-devel \
  libIDL-devel alsa-lib-devel libXt-devel freetype-devel pkgconfig \
  dbus-glib-devel curl-devel autoconf213 xorg-x11-proto-devel libX11-devel \
  libXau-devel libXext-devel wireless-tools-devel glibc-static libstdc++-static yasm \

You then need the packages to run the framebuffer display for testing:

yum install \
  metacity xorg-x11-server-Xvfb