-
Notifications
You must be signed in to change notification settings - Fork 26
debian_wheezy_setup
!meta title="Continuous Integration Debian Wheezy Setup" !meta author="Kyllikki" !meta date="2014-12-20T11:46:57Z"
Install minimal system from netinst CD (attached when VDS is created on phoenix) Config options:
- In the "role" selection select "ssh server" and "system utilities" only.
- The whole disc default partitioning is fine
- The base user the install insists on creating should be the netsurf user.
- Boot loader in MBR
Once installed:
- install sudo package and add netsurf user to sudo group
- edit /etc/inittab comment pty 3 through 6 and uncomment serial T0
on master jenkins use "manage nodes" to create new node. Ensure "remote fs root" is set to /var/lib/jenkins add variable JENKINS_HOME set to /var/lib/jenkins
As superuser:
- create jenkins user
adduser --system --group --home /var/lib/jenkins/ --disabled-login jenkins
- Add CI server repo to slave apt sources
echo "deb http://ci.netsurf-browser.org/debian/ wheezy/amd64/" >> /etc/apt/sources.list.d/netsurf-browser.list
- update repos
apt-get update
- install ns-ci-slave package. accept the large package list and the unsigned package install for gcovr and ns-ci-slave
apt-get install ns-ci-slave
- edit /etc/default/ns-ci-slave to set the correct url and secret parameters
- If toolchains are to be built on the node ensure /opt is setup correctly
mkdir -p /opt/netsurf
chown jenkins:jenkins /opt/netsurf
- become jenkins user
su -s/bin/bash - jenkins
- create ssh keypair (accept defaults - no password)
ssh-keygen -t rsa -C "netsurf@cislave10.netsurf-browser.org"
- copy .ssh/id_rsa.pub from slave to jenkins master node and append to /home/netsurf/.ssh/authorized_keys
scp /home/jenkins/.ssh/id_rsa.pub netsurf@ci.netsurf-browser.org:cislave10_id_rsa.pub
- exit jenkins user shell
- start slave daemon
/etc/init.d/ns-ci-slave start
use apt to install all these. The Netsurf repository has the necessary updated packages in it and can be accessed by doing the following:
- Add CI server repo to slave apt sources
echo "deb http://ci.netsurf-browser.org/builds/debian/ wheezy/amd64/" >> /etc/apt/sources.list
- update repos
apt-get update
openjdk-7-jre-headless
screen
build-essential
ccache
clang
git
pkg-config
check
doxygen
libjson0-dev (from our repo - needs bugfixes http://ci.netsurf-browser.org/builds/debian/)
libexpat1-dev
libxml-perl
libxml-xpath-perl
lcov
gcovr (from our repo)
gperf
flex
bison
libpng-dev
libjpeg-dev
libmozjs185-dev
libglib2.0-dev
libcurl4-openssl-dev
liblcms1-dev
libxml2-dev
librsvg2-dev
libmng-dev
libgtk2.0-dev
libmozjs-dev
- on master jenkins use "manage nodes" to create new node. Ensure "remote fs root" is set to /home/netsurf/jenkins
- create netsurf user
- as netsurf user:
- wget http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar
- run screen
- create jenkins-slave.sh
#!/bin/bash
java -Djava.awt.headless=true -jar slave.jar -jnlpUrl http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp -secret 0123456789abcdef01234567890abcdef
-
- run jenkins-slave.sh
- create new screen tab
- create ssh keypair (accept defaults - no password)
ssh-keygen -t rsa -C "netsurf@cislave0.netsurf-browser.org"
-
- copy .ssh/id_rsa.pub from slave to jenkins master node and append to /home/netsurf/.ssh/authorized_keys
scp ci.netsurf-browser.org:.ssh/id_rsa.pub .id_rsa.pub
cat id_rsa.pub >> .ssh/authorized_keys
-
- copy .ssh/id_rsa.pub from master node to slave and append to /home/netsurf/.ssh/authorized_keys
- create reverse-ssh.sh (change tunnel port number!)
#!/bin/sh
ssh -R 22224:localhost:22 netsurf@ci.netsurf-browser.org 'bash -c "while true; do echo .; sleep 60; done"'
-
- run reverse-ssh.sh
- on the master create a shell script to use the ssh tunnel connection, thus firewalls etc are moot as long as the slave can connect to the master
ssh netsurf@localhost -p 22223