Скачиваем последний TeamCity, распаковываем и устанавливаем разрешения (на примере v8.1.2):
wget -P /tmp http://download.jetbrains.com/teamcity/TeamCity-8.1.2.tar.gz sudo tar -C /var/www -xzf /tmp/TeamCity-*.tar.gz sudo mv /var/www/TeamCity /var/www/teamcity sudo chown www-data -R /var/www/teamcity
Если необходимо поменять порты, то это можно сделать в /var/www/teamcity/conf/server.xml
Создаем скрипт запуска /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
Устанавливаем openjdk8 (openjdk поддерживается oфф.):
sudo apt-get install openjdk-8-jdk
или
добавляем репозиторий с последним oracle-java8:
sudo apt-get purge openjdk* sudo add-apt-repository ppa:webupd8team/java sudo apt-get update
и устанавливаем oracle-java8:
sudo apt-get install oracle-java8-installer
Запускаем TeamCity:
sudo /etc/init.d/teamcity start
и настраиваем на порту 8111 (по умолчанию).
http://blog.ttgame.ru/ustanovka-i-nastroyka-teamcity-pod-ubuntu/
Для исходящих запросов по http и https, добавляем в:
Administration → Diagnostics → Internal Properties
teamcity.http.nonProxyHosts=localhost|*.domain.com teamcity.http.proxyHost=d2proxy.domain.com teamcity.http.proxyPort=3128 teamcity.https.nonProxyHosts=localhost|*.domain.com teamcity.https.proxyHost=d2proxy.domain.com teamcity.https.proxyPort=3128
Устанавливаем 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
Создаем сайт /etc/apache2/sites-available/teamcity.conf:
server {
server_name teamcity.domain.com;
listen 80;
client_max_body_size 500M;
access_log /var/log/nginx/teamcity_access.log;
error_log /var/log/nginx/teamcity_error.log;
location / {
proxy_pass http://127.0.0.1:8111;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
port_in_redirect off;
proxy_redirect http://127.0.0.1:8111/ /;
proxy_connect_timeout 600;
}
}
Добавляем сайт:
sudo a2ensite teamcity sudo service apache2 reload
Создаем сайт /etc/nginx/sites-available/teamcity:
map $http_upgrade $connection_upgrade {
default upgrade;
'' '';
}
server {
server_name teamcity.domain.com;
listen 80;
proxy_read_timeout 1200;
proxy_connect_timeout 240;
client_max_body_size 500M;
access_log /var/log/nginx/teamcity_access.log;
error_log /var/log/nginx/teamcity_error.log;
location / {
proxy_pass http://127.0.0.1:8111;
proxy_http_version 1.1;
proxy_set_header Host $server_name:$server_port;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
Подключаем сайт:
sudo ln -s /etc/nginx/sites-available/teamcity /etc/nginx/sites-enabled/ sudo service nginx reload
https://confluence.jetbrains.com/pages/viewpage.action?pageId=113084582#HowTo...-NGINX
После добавления проксирования через apache или nginx в /var/www/teamcity/conf/server.xml раскоментируем:
<Valve
className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for"
protocolHeader="x-forwarded-proto"
internalProxies="127\.0\.0\.1"
/>
Создаем базу:
export TEAMCITY_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18` mysql -u root -e "CREATE DATABASE teamcity default charset utf8;\ GRANT ALL PRIVILEGES ON teamcity.* TO teamcity@localhost IDENTIFIED BY '${TEAMCITY_DB_PW}';\ FLUSH PRIVILEGES;" -p
Добавляем под «# * InnoDB» в /etc/mysql/mariadb.conf.d/50-server.cnf:
innodb_flush_log_at_trx_commit=2 innodb_log_file_size=1024M innodb_buffer_pool_size=2000M binlog-format=mixed
и приводим к виду кодировку:
character-set-server = utf8 collation-server = utf8_general_ci
https://confluence.jetbrains.com/display/TCD10/Setting+up+an+External+Database#SettingupanExternalDatabase-MySQL
https://confluence.jetbrains.com/pages/viewpage.action?pageId=74845225#HowTo...-ConfigureNewlyInstalledMySQLServer
Бэкап средствами TeamCity:
#export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre #Oracle Java export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre #OpenJDK /var/www/teamcity/bin/maintainDB.sh backup -A /var/www/teamcity/.BuildServer --all
Быкапы хранятся в /var/www/teamcity/.BuildServer/backup
https://confluence.jetbrains.com/display/TCD10/Creating+Backup+via+maintainDB+command-line+tool
Извлекаем из архива файл настроек и mysql-connector:
unzip -d /tmp TeamCity_Backup_20141201_105532.zip lib/jdbc/* config/database.properties mkdir /var/www/teamcity/.BuildServer mv /tmp/lib /var/www/teamcity/.BuildServer
#export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre #Oracle Java export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre #OpenJDK sudo /var/www/teamcity/bin/maintainDB.sh restore -A /var/www/teamcity/.BuildServer -F ~/TeamCity_Backup_20141201_105532.zip -T /tmp/config/database.properties sudo chown www-data -R /var/www/teamcity/.BuildServer/ rm -rf /tmp/config
https://confluence.jetbrains.com/display/TCD10/Restoring+TeamCity+Data+from+Backup
[extensions] purge =
install-WindowsFeature -name Web-Scripting-Tools
mklink /j C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.SqlClrProvider\10.0.0.0__89845dcd8080cc91 C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.SqlClrProvider\11.0.0.0__89845dcd8080cc91
Ошибки
hg: unknown command «purge» - 2 пункт
import-module : The specified module 'WebAdministration' was not loaded - 4 пункт (отсутствует C:\Windows\system32\inetsrv\Microsoft.Web.Administration.dll)
error CS0234: The type or namespace name 'IdentityModel' does not exist in the namespace 'Microsoft' - 5 пункт
Проблемы с кодировкой имен файлов (кириллица) - 6 пункт
error CS0234: The type or namespace name 'SqlServerCe' does not exist in the namespace 'System.Data' - 7 пункт
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. - 8 пункт
The 'VFPOLEDB.1' provider is not registered on the local machine. - 9 пункт
warning MSB3644: The reference assemblies for framework «.NETFramework,Version=v4.5.1» were not found - 10 пункт
Could not load file or assembly 'Microsoft.SqlServer.SqlClrProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies - 11 пункт
warning MSB3644: The reference assemblies for framework «.NETFramework,Version=v4.0» were not found.