Установка Java 8
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
Проверьте, запущена ли Java:
$ java -version
Вы должны увидеть что-то вроде этого:
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
Установка Postgres
TeamCity поддерживает Postgres, MySQL, MS SQL, Oracle и внутреннюю БД по умолчанию. Давайте использовать Postgres в продакшене, так как он очень стабильный.
$ sudo apt-get -y install postgresql postgresql-contrib
После установки сервера базы данных PostgreSQL по умолчанию он создает пользователя postgres с ролью postgres. Он также создает системную учетную запись с таким же именем postgres. Итак, чтобы подключиться к серверу postgres, войдите в свою систему как пользователь postgres и подключите базу данных. Для начала нам нужно установить пароль пользователя (роли) PostgreSQL с именем postgres, иначе мы не сможем получить доступ к серверу извне. Как локальный пользователь Linux в postgres, нам разрешено подключаться и управлять сервером с помощью команды psql.
$ sudo -u postgres psql postgres
Теперь измените пароль пользователя postgres:
$ \password postgres
Создаем пользователя и базу данных для TeamCity 2020
Войдите в консоль postgres, используя учетную запись postgres:
$ sudo -u postgres psql
Создаем базу данных и пользователя для TeamCity
CREATE DATABASE teamcity;
CREATE USER teamcity WITH ENCRYPTED PASSWORD 'teamcity';
GRANT ALL PRIVILEGES ON DATABASE teamcity TO teamcity;
Загружаем TeamCity 2020
$ wget https://download.jetbrains.com/teamcity/TeamCity-2020.1.tar.gz
Скачав сжатый файл, распакуйте его:
$ tar -xzf TeamCity-2020.1.tar.gz
Давайте установим TeamCity в папку opt. Мы должны переместить его и установить разрешения для пользователя, запускающего приложение TeamCity:
$ sudo mkdir /opt/JetBrains
$ sudo mv TeamCity /opt/JetBrains/TeamCity
$ cd /opt/JetBrains/TeamCity
$ sudo chown -R <USER_RUNNING_TEAM_CITY> /opt/JetBrains/TeamCity
Теперь настройте TeamCity для автоматического запуска. создать новый скрипт:
$ sudo nano /etc/init.d/teamcity
Теперь добавьте это содержимое:
#!/bin/sh
### BEGIN INIT INFO
# Provides: TeamCity autostart
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start teamcity daemon at boot time
# Description: Enable service provided by daemon.
# /etc/init.d/teamcity - startup script for teamcity
### END INIT INFO
# Ensure you enter the right user name that TeamCity will run under
USER="agentuser"
export TEAMCITY_DATA_PATH="/opt/JetBrains/TeamCity/.BuildServer"
case $1 in
start)
start-stop-daemon --start -c $USER --exec /opt/JetBrains/TeamCity/bin/runAll.sh start
;;
stop)
start-stop-daemon --start -c $USER --exec /opt/JetBrains/TeamCity/bin/runAll.sh stop
;;
esac
exit 0
Измените разрешения для скрипта и добавьте его в автозагрузку при каждом запуске / остановке сервера.
$ sudo chmod +x /etc/init.d/teamcity
$ sudo update-rc.d teamcity defaults
Загрузите драйвер Postgres
$ cd /opt/JetBrains/TeamCity/.BuildServer/lib/jdbc # create the folder path if does't exist
$ wget https://jdbc.postgresql.org/download/postgresql-9.4.1212.jar
Теперь запустите TeamCity:
sudo /etc/init.d/teamcity start
Теперь перейдите по адресу http://<DOMAIN_OR_IP_ADDRESS>:8111 и настройте первое соединение TeamCity.
Добавляем запись в свой домен
Добавьте запись A в настройки DNS, указывающую ваш собственный домен или субдомен на ваш IP-адрес VPS.
Включение NGINX для прослушивания порта 80
Установка nginx
$ sudo apt-get install nginx
Теперь создайте файл конфигурации для TeamCity, доступного через nginx
$ sudo vim /etc/nginx/sites-available/teamcity
Вставьте следующее содержание:
map $http_upgrade $connection_upgrade {
default upgrade;
'' '';
}
server {
listen 80;
server_name <DOMAIN.COM> www.<DOMAIN.COM>;
proxy_read_timeout 1200;
proxy_connect_timeout 240;
client_max_body_size 0;
location / {
proxy_pass http://localhost:8111/;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $server_name:$server_port;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
Создайте символическую ссылку для нового сайта (TeamCity) и перезапустите nginx.
$ sudo ln -s /etc/nginx/sites-available/teamcity /etc/nginx/sites-enabled/teamcity
$ sudo service nginx restart
Перейдите в свой домен или IP-адрес. Вы должны увидеть, что TeamCity работает на порту 80 (по умолчанию).