john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

Continuous integration bamboo on ubuntu 14.04 with tomcat7 libapr

Bamboo14.04 on 172.24.32.5 2vCPU 8GB RAM 16GB Disk ubuntu / hipchat UTC single bootable / ext4 partition (no swap on a VM) as OpenSSH server login; vi /etc/network/interfaces

iface eth0 inet static
    address 172.24.32.128
    netmask 255.255.254.0
    network 172.24.32.0
    broadcast 172.24.32.255
    gateway 172.24.32.1

    dns-nameservers 172.24.32.10 172.24.32.11
    dns-search hipchat.atlassian.com

# ensured that DNS Server is updated with the new DNS name bamboo.example.com and static ip address

**sudo su**

apt-get update; apt-get install libssl-dev openssl
> for the many libssl and openssl security vulnerabilities

/usr/sbin/useradd --create-home --home-dir /usr/local/bamboo --shell /bin/bash bamboo
passwd bamboo
ps a
apt-get install ntp unzip unrar curl git-core openjdk-7-jdk
git --version; java -version
apt-get install tomcat7

apt-get install libtcnative-1

Installing libtcnative manually

Do this to ensure you are not running openssl and libssl with security vulnerabilities like heartbleed

apt-get install make
https://apr.apache.org/download.cgi
wget http://apache.claz.org//apr/apr-1.5.1.tar.gz
tar -xf apr.1.5.1.tar.gz
cd apr-1.5.1
sudo ./configure ; sudo make ; sudo make install
ls -ahl /usr/local/apr/lib
> libapr-1.so.0.5.1

http://tomcat.apache.org/download-native.cgi
wget http://mirror.reverse.net/pub/apache/tomcat/tomcat-connectors/native/1.1.31/source/tomcat-native-1.1.31-src.tar.gz
tar -xf tomcat-native-1.1.31-src.tar.gz
cd tomcat-native-1.1.31-src/jni/native
sudo ./configure --with-apr=/usr/local/apr --with-java-home=/usr/lib/jvm/java-7-openjdk-amd64 ; sudo make ; sudo make install
ls -ahl /usr/local/apr/lib
> libtcnative-1.so.1.31

echo "export JAVA_HOME='/usr/lib/jvm/java-7-openjdk-amd64'" >> /usr/share/tomcat7/bin/setenv.sh
echo "export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/apr/lib' >> /usr/share/tomcat7/bin/setenv.sh

chmod +x /usr/share/tomcat7/bin/setenv.sh
> aka $CATALINA_HOME/bin/setenv.sh

Configuring tomcat7 to use SSL

vi /var/lib/tomcat7/conf/server.xml

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" 
     SSLCACertificateFile="/usr/local/bamboo/server-ca.crt"
     SSLCertificateFile="/usr/local/bamboo/server.crt"
     SSLCertificateKeyFile="/usr/local/bamboo/server.pem"
     SSLVerifyClient="optional" SSLProtocol="TLSv1"
     SSLCipherSuite="ALL:!aNULL:!eNULL:!ADH:!LOW:!EXP:RC4+RSA:!DHE-RSA-AES256-SHA:!SSLv2:AES256-SHA"
     URIEncoding="UTF-8"  />

removing annoying warnings

sudo ln -s /var/lib/tomcat7/common/ common sudo ln -s /var/lib/tomcat7/server/ server sudo ln -s /var/lib/tomcat7/shared/ shared

sudo /etc/init.d/tomcat7 restart

less /var/log/tomcat7/catalina.out

Jul 16, 2014 10:01:00 PM org.apache.catalina.core.AprLifecycleListener init INFO: Loaded APR based Apache Tomcat Native library 1.1.31 using APR version 1.5.1. Jul 16, 2014 10:01:00 PM org.apache.catalina.core.AprLifecycleListener init INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. Jul 16, 2014 10:01:01 PM org.apache.catalina.core.AprLifecycleListener initializeSSL INFO: OpenSSL successfully initialized (OpenSSL 1.0.1f 6 Jan 2014) Jul 16, 2014 10:01:01 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-apr-8080"] Jul 16, 2014 10:01:01 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-apr-8443"] Jul 16, 2014 10:01:01 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 702 ms Jul 16, 2014 10:01:01 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Jul 16, 2014 10:01:01 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.52 (Ubuntu) Jul 16, 2014 10:01:01 PM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT Jul 16, 2014 10:01:02 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-apr-8080"] Jul 16, 2014 10:01:02 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-apr-8443"] Jul 16, 2014 10:01:02 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 1376 ms

https://bamboo.example.com:8443/

Ruby

sudo apt-get install ruby2.0 gem install rake

Bamboo

https://www.atlassian.com/software/bamboo/download
tar -xf atlassian-bamboo-5.5.1.tar.gz
sudo mv atlassian-bamboo-5.5.1 /usr/local/bamboo
sudo chown bamboo:bamboo /usr/local/bamboo/atlassian-bamboo-5.5.1
sudo echo "bamboo.home=/usr/local/bamboo" >> /usr/local/bamboo/atlassian-bamboo-5.5.1/atlassian-bamboo/WEB-INF/classes/bamboo-init.properties

MySQL

sudo apt-get install mysql-server-5.5
> enter a password for the default root user
mysql -uroot -p

> create an empty database and a bamboo user
CREATE DATABASE bamboo CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON bamboo.* TO 'bamboouser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
QUIT

> download and install the mysql java connector from http://dev.mysql.com/downloads/connector/j/
tar -xf mysql-connector-java-5.1.31.tar.gz
cp -a mysql-connector-java-5.1.31/mysql-connector-java-5.1.31-bin.jar /usr/local/bamboo/atlassian-bamboo-5.5.1/lib/

vi /etc/init.d/bamboo

!/bin/sh -e

bamboo startup script

chkconfig: 2345 80 05

description: bamboo

Define some variables

Name of app ( bamboo, Confluence, etc )

APP=bamboo

Name of the user to run as

USER=bamboo

Location of application's bin directory

BASE=/usr/local/bamboo/atlassian-bamboo-5.5.1

Location of Java JDK

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

case "$1" in # Start command start) echo "Starting $APP" $BASE/bin/start-bamboo.sh # /bin/su -m $USER -c "cd $BASE/logs && $BASE/bin/start-bamboo.sh &> /dev/null" ;; # Stop command stop) echo "Stopping $APP" $BASE/bin/stop-bamboo.sh $ /bin/su -m $USER -c "$BASE/bin/stop-bamboo.sh &> /dev/null" echo "$APP stopped successfully" ;; # Restart command restart) $0 stop sleep 5 $0 start ;; *) echo "Usage: /etc/init.d/$APP {start|restart|stop}" exit 1 ;; esac

exit 0

chmod +x /etc/init.d/bamboo

cd /etc/init.d update-rc.d bamboo defaults

fix some things vi bamboo update-rc.d -f bamboo remove update-rc.d bamboo defaults

/etc/init.d/bamboo start

tail -f /usr/local/bamboo/atlassian-bamboo-5.5.1/bin/logs/catalina.out

Bamboo Setup Wizard

http://myatlassian.com

copy your license

http://bamboo1.example.com:8085/

wait about 30 seconds

Setup Wizard: License -> Directories -> Database (bamboouser / password) -> administrator user https://confluence.atlassian.com/display/BAMBOO/Running+the+Setup+Wizard

More Info

For parallel builds, add multiple local agents , i.e. http://bamboo.example.com:8085/admin/agent/configureAgents!default.action

If you want to use submodules, e.g. git clone --recursive git@bitbucket.org:USER/REPO.git

there is a checkbox for Repository Source but HTTPS does not seem to work

RESOLUTION:

For the user that runs bamboo (e.g. root) ensure there's an SSH key (/root/.ssh/id_rsa; chmod 400) is installed git clone --recursive once to add the fingerprint of the remote git server to authorized


  • « Continuous integration bamboo install artifacts environment variables
  • Bash scripts defined »

Published

Jul 30, 2014

Category

linux

~705 words

Tags

  • 14.04 1
  • bamboo 4
  • continuous 4
  • integration 5
  • libapr 3
  • linux 249
  • on 26
  • tomcat7 4
  • ubuntu 30
  • with 29