Debian wheezy (7.0) OS install
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
Packaged Setup for Debian wheezy (7.0)
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
Manual Setup of Debian wheezy (7.0)
required packages
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
config
- 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