github.com/rvaralda/deis@v1.4.1/tests/bin/setup-node.sh (about) 1 #!/bin/bash 2 # 3 # Preps a Ubuntu 14.04 box with requirements to run as a Jenkins node to https://ci.deis.io/ 4 # Should be run as root. 5 6 # install docker 7 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 8 sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list" 9 apt-get update && apt-get install -yq lxc-docker-1.5.0 10 11 # install java 12 apt-get install -yq openjdk-7-jre-headless 13 14 # install virtualbox 15 apt-get install -yq build-essential libgl1-mesa-glx libpython2.7 libqt4-network libqt4-opengl \ 16 libqtcore4 libqtgui4 libsdl1.2debian libvpx1 libxcursor1 libxinerama1 libxmu6 17 wget http://download.virtualbox.org/virtualbox/4.3.22/virtualbox-4.3_4.3.22-98236~Ubuntu~raring_amd64.deb 18 dpkg -i virtualbox-4.3_4.3.22-98236~Ubuntu~raring_amd64.deb && \ 19 rm virtualbox-4.3_4.3.22-98236~Ubuntu~raring_amd64.deb 20 21 # install vagrant 22 wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_x86_64.deb 23 dpkg -i vagrant_1.7.2_x86_64.deb && rm vagrant_1.7.2_x86_64.deb 24 # as the jenkins user, do "vagrant plugin install vagrant-triggers" 25 26 # install go 27 wget -qO- https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | tar -C /usr/local -xz 28 echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile 29 echo "You must reboot for the global $PATH changes to take effect." 30 31 # install test suite requirements 32 apt-get install -yq curl mercurial python-dev libffi-dev libpq-dev libyaml-dev git postgresql postgresql-client 33 curl -sSL https://raw.githubusercontent.com/pypa/pip/6.0.8/contrib/get-pip.py | python - 34 pip install virtualenv 35 36 # create jenkins user and install node bootstrap script 37 useradd -G docker,vboxusers -s /bin/bash -m jenkins 38 mkdir -p /home/jenkins/bin 39 wget -x -O /home/jenkins/bin/start-node.sh \ 40 https://raw.githubusercontent.com/deis/deis/master/tests/bin/start-node.sh 41 chmod +x /home/jenkins/bin/start-node.sh 42 chown -R jenkins:jenkins /home/jenkins/bin 43 44 # TODO: instructions to download and install fleetctl 45 46 # set up PostgreSQL role for controller unit tests 47 sudo -u postgres psql -c "CREATE ROLE jenkins WITH CREATEDB LOGIN;" 48 sudo -u postgres psql -c "CREATE DATABASE deis WITH OWNER jenkins;" 49 # edit postgresql.conf and change "fsync = off", then restart postgresql. 50 51 # now the jenkins user has to export some envvars to start as a node 52 echo "Remaining setup:" 53 echo " 1. Log in as the jenkins user (sudo -i -u jenkins)" 54 echo " 2. Visit the nodes admin interface at https://ci.deis.io/ to find the command line for this node" 55 echo " 3. Export the NODE_NAME and NODE_SECRET environment variables defined there to your shell" 56 echo " 4. Run bin/start-node.sh to connect to Jenkins and start handling jobs"