Bamboo: установка и настройка на CentOS + MySQL/MariaDB

Автор: | 11/03/2015

logo_bamboo_blueBamboo – билд-сервер и Сontinuous Integration tool, аналогичен TeamCity, но так как разработчик – Atlassian – то в нём реализована тесная интеграция с Jira и другими продуктами Atlassian.

Именно поэтому на новом проекте решили попробовать мигрировать на Bamboo вместо TeamCity.

Недостаток – он платный, но для знакомства доступна 30-ти дневная Trial лицензия, а годовая лицензия на 10 локальных билд-агентов обойдётся всего в $10 за год (правда, уже с 1-м агентом на другом хосте – $800).

Домашняя страница проекта – тут>>>.Установка выполняется на CentOS 6.6 + 10.0.17-MariaDB.

Создаём пользователя:

# useradd bamboo
# passwd bamboo
Changing password for user bamboo.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

Переключаемся на него:

# su -l bamboo

Создаём директорию для установки:

$ mkdir bamboo

Создаём директорию для Java:

$ mkdir java
$ cd java/

Проверяем архитектуру:

$ uname -i
i386

С сайта http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html качаем подходящую сборку JDK. Так как там необходимо принять условия лицензии – качаем с другой машины браузером, а потом – загружаем на сервер.

Распаковываем:

$ tar xfp jdk-7u75-linux-i586.tar.gz
$ ls -l
total 140056
drwxr-xr-x. 8 bamboo bamboo      4096 Dec 19 04:32 jdk1.7.0_75

Редактируем .bashrc (или .profile или другой файл, в котором у вас прописаны переменные окружения) и добавляем JAVA_HOME:

$ echo "export JAVA_HOME=$HOME/java/jdk1.7.0_75" >> ~/.bashrc

Перечитаем файл:

$ . ~/.bashrc
$ echo $JAVA_HOME
/home/bamboo/java/jdk1.7.0_75

Проверяем:

$ java -version
java version "1.7.0_75"
OpenJDK Runtime Environment (rhel-2.5.4.0.el6_6-i386 u75-b13)
OpenJDK Client VM (build 24.75-b04, mixed mode, sharing)

Устанавливаем MariaDB – подробно описано тут>>>.

Создаём базу:

# mysql -u root -p
MariaDB [(none)]> create database bamboo character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

Пользователя:

MariaDB [(none)]> grant all on bamboo.* to 'bamboo'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

Приступаем к установке Bamboo.

Со страницы https://www.atlassian.com/software/bamboo/download загружаем нужный релиз:

$ cd ../bamboo/
$ wget https://www.atlassian.com/software/bamboo/downloads/binary/atlassian-bamboo-5.7.2.tar.gz

Распаковываем:

$ tar xfp atlassian-bamboo-5.7.2.tar.gz

Проверяем:

$ ls -l
total 181396
drwxr-xr-x. 14 bamboo bamboo      4096 Dec  2 09:12 atlassian-bamboo-5.7.2
$ ls -l atlassian-bamboo-5.7.2
total 96
drwxr-xr-x. 38 bamboo bamboo  4096 Dec  2 09:12 atlassian-bamboo
-rwxr-xr-x.  1 bamboo bamboo  1375 Dec  2 09:10 bamboo.sh
drwxr-xr-x.  2 bamboo bamboo  4096 Dec  2 09:12 bin
drwxr-xr-x.  2 bamboo bamboo  4096 Dec  2 09:12 conf
drwxr-xr-x.  2 bamboo bamboo  4096 Dec  2 09:12 lib
drwxr-xr-x.  2 bamboo bamboo 40960 Dec  2 09:12 licenses
drwxr-xr-x.  2 bamboo bamboo  4096 Dec  2 09:12 logs
-rw-r--r--.  1 bamboo bamboo  1228 Dec  2 09:10 NOTICE
-rw-r--r--.  1 bamboo bamboo  3801 Dec  2 09:10 README.html
-rw-r--r--.  1 bamboo bamboo  2034 Dec  2 09:10 README.txt
drwxr-xr-x.  6 bamboo bamboo  4096 Dec  2 09:12 scripts
drwxr-xr-x.  2 bamboo bamboo  4096 Dec  2 09:12 temp
drwxr-xr-x.  2 bamboo bamboo  4096 Dec  2 09:12 tomcat-docs
drwxr-xr-x.  2 bamboo bamboo  4096 Dec  2 09:12 webapps
drwxr-xr-x.  2 bamboo bamboo  4096 Dec  2 09:12 work

Создаём директорию для данных Bamboo:

$ mkdir bamboo_home

Редактируем файл настроек Bamboo:

$ vim atlassian-bamboo-5.7.2/atlassian-bamboo/WEB-INF/classes/bamboo-init.properties

И устанавливаем строку:

bamboo.home=/home/bamboo/bamboo/bamboo_home

Переходим на страницу http://dev.mysql.com/downloads/connector/j/, логинимся (Oracle, надеюсь – тебе икнулось), загружаем нужный драйвер на локальную машину, распаковываем, и копируем mysql-connector-java-5.1.34-bin.jar на Bamboo сервер в каталог ~/bamboo/atlassian-bamboo-5.7.2/lib/:

$ ls -l atlassian-bamboo-5.7.2/lib/ | grep sql
-rw-r--r--. 1 bamboo bamboo  643727 Dec  2 09:10 hsqldb-1.8.0.7.jar
-rw-r--r--. 1 bamboo bamboo  960374 Oct 17 09:05 mysql-connector-java-5.1.34-bin.jar
-rw-r--r--. 1 bamboo bamboo  472831 Dec  2 09:10 postgresql-8.4-701.jdbc3.jar

Запускаем Bamboo:

$ ./atlassian-bamboo-5.7.2/bin/startup.sh

Bamboo Standalone Edition
   Version : 5.7.2

Detecting JVM PermGen support...
PermGen switch is supported. Setting to 256m

...

Using CATALINA_BASE:   /home/bamboo/bamboo/atlassian-bamboo-5.7.2
Using CATALINA_HOME:   /home/bamboo/bamboo/atlassian-bamboo-5.7.2
Using CATALINA_TMPDIR: /home/bamboo/bamboo/atlassian-bamboo-5.7.2/temp
Using JRE_HOME:        /home/bamboo/java/jdk1.7.0_75
Using CLASSPATH:       /home/bamboo/bamboo/atlassian-bamboo-5.7.2/bin/bootstrap.jar:/home/bamboo/bamboo/atlassian-bamboo-5.7.2/bin/tomcat-juli.jar

По умолчанию Bamboo запускает Tomcat на порту 8085:

$ netstat -anp | grep java
...
tcp        0      0 :::8085                     :::*                        LISTEN      1681/java
$ cat atlassian-bamboo-5.7.2/conf/server.xml | grep port
<Server port="8007" shutdown="SHUTDOWN">
    <!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html -->
        <Connector port="8085"

Открываем порт на фаерволе:

# iptables -I INPUT 2 -p tcp --dport 8085 -j ACCEPT
# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Заходим на http://bamboo.domain.local:8085

bamboo_1

Что бы зарегистрировать бесплатную лицензию – переходим на страницу https://id.atlassian.com/login?continue=https%3A%2F%2Fmy.atlassian.com&application=mac.

Регистрируемся, и переходим в New Evaluation License:

bamboo_2

В списке выбираем Bamboo (server):

bamboo_3Со страницы вашего Bamboo копируем Server ID:

bamboo_4

При желании – заполняем простую форму:

bamboo_5

Копируем лицензионный ключ:

bamboo_6

И добавляем лицензию в вашу установку Bamboo:

bamboo_7

Если нажать Express Installation то, по аналогии с TeamCity, предполагаю что будет использоваться какая-то локальная база типа SQLite или HSQLDB.Так как мы используем MariaDB – то выбираем Custom.

В первом окне можно ничего не менять:

bamboo_8

В следующем окне выбираем MySQL (MariaDB):

bamboo_9

В поле Database URL  добавляем &useUnicode=true&characterEncoding=utf8, указываем пользователя и пароль:

bamboo_10 bamboo_10

Ждём, пока будут созданы все таблицы:

bamboo_11

Оставляем без изменений:

bamboo_12

Создаём администратора:

bamboo_13

Готово:

bamboo_14

Последний шаг – создадим init-файл для управления.

В файл /etc/init.d/bamboo записываем:

#!/bin/sh
set -e
### BEGIN INIT INFO
# Provides: bamboo
# Required-Start: $local_fs $remote_fs $network $time
# Required-Stop: $local_fs $remote_fs $network $time
# Should-Start: $syslog
# Should-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Atlassian Bamboo Server
### END INIT INFO
# INIT Script
######################################

APP=bamboo
USER=bamboo
BASE=/home/bamboo/bamboo/atlassian-bamboo-5.7.2

case "$1" in
  # Start command
  start)
    echo "Starting $APP"
    /bin/su - $USER -c "export BAMBOO_HOME=${BAMBOO_HOME}; $BASE/bin/startup.sh &> /dev/null"
    ;;
  # Stop command
  stop)
    echo "Stopping $APP"
    /bin/su - $USER -c "$BASE/bin/shutdown.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

Проверяем:

# service bamboo stop
Stopping bamboo
bamboo stopped successfully
# service bamboo start
Starting bamboo

Добавляем в автозапуск:

# chkconfig --add bamboo
# chkconfig --list bamboo
bamboo          0:off   1:off   2:on    3:on    4:on    5:on    6:off

На этом всё.