Установка и настройка TeamCity под Ubuntu
Потребовалось поднять TeamCity для наших разработчиков. Вооружившись Google и терпением начал изучать различные мануалы.
Имеем Ubuntu Server 13.10 amd64, Apache 2, свежий TeamCity.
Распаковываем скаченный архив TeamCity в /var/www/teamcity
Меняем владельца:
sudo chown -R www-data /var/www/teamcityЕсли хочется, то меняем порт на котором висит Teamcity:
sudo nano /var/www/teamcity/conf/server.xmlСоздаем файл запуска:
touch /etc/init.d/teamcityсо следующим содержанием:
#!/bin/sh
# /etc/init.d/teamcity - startup script for teamcity
export TEAMCITY_DATA_PATH="/var/www/teamcity/.BuildServer"
case $1 in
start)
start-stop-daemon --start -c www-data --exec /var/www/teamcity/bin/teamcity-server.sh start
;;
stop)
start-stop-daemon --start -c www-data --exec /var/www/teamcity/bin/teamcity-server.sh stop
;;
esac
exit 0Не забываем сделать его запускаемым
sudo chmod 0755 /etc/init.d/teamcityТеперь регистрируем скрипт запуска:
sudo update-rc.d teamcity defaultsЗапускаем вручную:
sudo /etc/init.d/teamcity startПолучим ошибку, если не установлена Java
Устанавливаем Java:
sudo apt-get purge openjdk*sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install openjdk-7-jdkИЛИ
sudo apt-get install oracle-java7-installerТеперь все запустится на порту 8111 (по умолчанию), но хочется на 80 порту все иметь (проще). Для этого используем Apache в роли прокси.
Доустанавливаем необходимые модули:
sudo apt-get install libapache2-mod-proxy-html libapache2-mod-gnutlsАктивируем модуль
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo /etc/init.d/apache2 restartСоздаем новый virtualHost в папке /etc/apache2/sites-available
sudo touch /etc/apache2/sites-available/teamcity.confСодержание примерно следующее:
<VirtualHost *:80>
ServerAdmin admin@contoso.com
ServerAlias teamcity.contoso.com
ProxyRequests Off
ProxyPreserveHost On
ProxyVia full
<proxy *>
Order deny,allow
Allow from all
</proxy>
ProxyPass / http://192.168.0.5:8111/
ProxyPassReverse / http://192.168.0.5:8111/
</VirtualHost>где 192.168.0.5 сервер где крутится TeamCity
Активируем наш виртуальный хост:
sudo a2ensite teamcity.confИ перезагружаем Apache:
sudo /etc/init.d/apache2 reloadНе забываем прописать на DNS сервере A-запись
192.168.0.5 A teamcity.contoso.comРазворачивание из бекапа
Если бекап TeamCity_Backup_20140725_170732.zip
Для того, что бы восстановить (при обновлении или еще после чего) следуем по шагам:
- останавливаем сервис Teamcity:
/etc/init.d/teamcity stop- Копируем в корень TeamCity файл database.hsqldb.properties.dist из /var/www/teamcity/.BuildServer/config (считаем, что БД у нас HSQLDB)
- Удаляем все из /var/www/teamcity/.BuildServer/config/ и /var/www/teamcity/.BuildServer/system/
- Идем в папку bin:
cd /var/www/teamcity/bin- Запускаем восстановление:
./maintainDB.sh restore -F TeamCity_Backup_20140725_170732.zip -A /var/www/teamcity/.BuildServer/ -T /var/www/teamcity/database.hsqldb.properties.distЕсли хочет получить переменную JAVA_HOME, то даем так:
export JAVA_HOME=/usr/lib/jvm/java-7-oracle- Запускаем сервис TeamCity
/etc/init.d/teamcity start- Заходим в веб-морду и следуем инструкциям