diff options
Diffstat (limited to 'doc/developer-guide/Jenkins-Manual-Setup.md')
| -rw-r--r-- | doc/developer-guide/Jenkins-Manual-Setup.md | 146 | 
1 files changed, 146 insertions, 0 deletions
diff --git a/doc/developer-guide/Jenkins-Manual-Setup.md b/doc/developer-guide/Jenkins-Manual-Setup.md new file mode 100644 index 00000000000..3622c7265a0 --- /dev/null +++ b/doc/developer-guide/Jenkins-Manual-Setup.md @@ -0,0 +1,146 @@ +Setting up Jenkins slaves on Rackspace for GlusterFS regression testing +======================================================================= + +This is for RHEL/CentOS 6.x. The below commands should be run as root. + +### Install additional required packages + +		yum -y install cmockery2-devel dbench libacl-devel mock nfs-utils yajl perl-Test-Harness salt-minion + +### Enable yum-cron for automatic rpm updates + +		chkconfig yum-cron on + +### Add the mock user + +		useradd -g mock mock + +### Disable eth1 + +Because GlusterFS can fail if more than 1 ethernet interface + +		sed -i 's/ONBOOT=yes/ONBOOT=no/' /etc/sysconfig/network-scripts/ifcfg-eth1 + +### Disable IPv6 + +As per <https://access.redhat.com/site/node/8709> + +		sed -i 's/IPV6INIT=yes/IPV6INIT=no/' /etc/sysconfig/network-scripts/ifcfg-eth0 +		echo 'options ipv6 disable=1' > /etc/modprobe.d/ipv6.conf +		chkconfig ip6tables off +		sed -i 's/NETWORKING_IPV6=yes/NETWORKING_IPV6=no/' /etc/sysconfig/network +		echo ' ' >> /etc/sysctl.conf +		echo '# ipv6 support in the kernel, set to 0 by default' >> /etc/sysctl.conf +		echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf +		echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf +		sed -i 's/v     inet6/-     inet6/' /etc/netconfig + +### Update hostname + +		vi /etc/sysconfig/network +		vi /etc/hosts + +### Remove IPv6 and eth1 interface from /etc/hosts + +		sed -i 's/^10\./#10\./' /etc/hosts +		sed -i 's/^2001/#2001/' /etc/hosts + +### Install ntp + +		yum -y install ntp +		chkconfig ntpdate on +		service ntpdate start + +### Install OpenJDK, needed for Jenkins slaves + +		yum -y install java-1.7.0-openjdk + +### Create the Jenkins user + +		useradd -G wheel jenkins +		chmod 755 /home/jenkins + +### Set the Jenkins password + +		passwd jenkins + +### Copy the Jenkins SSH key from build.gluster.org + +		mkdir /home/jenkins/.ssh +		chmod 700 /home/jenkins/.ssh +		cp `<somewhere>` /home/jenkins/.ssh/id_rsa +		chown -R jenkins:jenkins /home/jenkins/.ssh +		chmod 600 /home/jenkins/.ssh/id_rsa + +### Generate the SSH known hosts file for jenkins user + +		su - jenkins +		mkdir ~/foo +		cd ~/foo +		git clone `[`ssh://build@review.gluster.org/glusterfs.git`](ssh://build@review.gluster.org/glusterfs.git) +		(this will ask if the new host fingerprint should be added.  Choose yes) +		cd .. +		rm -rf ~/foo +		 exit + +### Install git from RPMForge + +		yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm +		yum -y --enablerepo=rpmforge-extras update git + +### Install the GlusterFS patch acceptance tests + +		git clone git://forge.gluster.org/gluster-patch-acceptance-tests/gluster-patch-acceptance-tests.git /opt/qa + +### Add the loopback mount point to /etc/fstab + +For the 1GB Rackspace VM's use this: + +		echo '/backingstore           /d                      xfs     loop            0 2' >> /etc/fstab +		mount /d + +For the 2GB and above Rackspace VM's use this: + +		echo '/dev/xvde   /d   xfs   defaults   0 2' >> /etc/fstab +		mount /d + +### Create the directories needed for the regression testing + +		JDIRS="/var/log/glusterfs /var/lib/glusterd /var/run/gluster /d /d/archived_builds /d/backends /d/build /d/logs /home/jenkins/root" +		mkdir -p $JDIRS +		chown jenkins:jenkins $JDIRS +		chmod 755 $JDIRS +		ln -s /d/build /build + +### Create the directories where regression logs are archived + +		ADIRS="/archives/archived_builds /archives/logs" +		mkdir -p $ADIRS +		chown jenkins:jenkins $ADIRS +		chmod 755 $ADIRS + +### Install Nginx + +For making logs available over http + +		yum -y install http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm +		yum -y install nginx +		lokkit -s http + +### Copy the Nginx config file into place + +		cp -f /opt/qa/nginx/default.conf /etc/nginx/conf.d/default.conf + +### Enable wheel group for sudo + +		sed -i 's/# %wheel\tALL=(ALL)\tNOPASSWD/%wheel\tALL=(ALL)\tNOPASSWD/' /etc/sudoers + +### Reboot (for networking changes to take effect) + +		reboot + +### Add forward and reverse DNS entries for the slave into Rackspace DNS + +Rackspace recently added [API calls for its Cloud +DNS](https://developer.rackspace.com/docs/cloud-dns/getting-started/?lang=python) +service, so we should be able to fully automate this part as well now.
\ No newline at end of file  | 
