Skip to content

Jenkins Manual Setup

hchiramm edited this page May 19, 2015 · 1 revision

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://[email protected]/glusterfs.git`](ssh://[email protected]/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 service, so we should be able to fully automate this part as well now.

Clone this wiki locally