LoginSignup
36
38

More than 5 years have passed since last update.

JetBrains CI サーバー TeamCity 9.1 を構築する

Posted at

まず、TeamCity について。
そもそもご存じない方が多いように思うので、ヒトコトで紹介すると、IntelliJ IDEA の開発で有名な JetBrains 製の CI サーバーです。

オンプレミスの CI サーバーとしては、世の中的に Jenkins の方が有名ではありますが、プロジェクトの階層化に対応しており、ビルド構成も非常に見通しやすく、個人的に非常に気に入っています。

JetBrains 製ということでライセンス形態が気になるところですが、20のビルド構成、3つのビルドエージェントまでは、すべての機能が無償で利用することが可能です。
複数のプロダクトを1つのサーバーで横断的に管理したいなどでなければ、無償の範囲で十分に運用できそうです。

さっそく構築してみます。

環境

  • ConoHa by GMO メモリ 1GB プラン
  • Ubuntu 14.04 LTS
  • Java 8
  • PostgreSQL 9.3
  • TeamCity 9.1.6
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
$ psql --version
psql (PostgreSQL) 9.3.10

ダウンロード - TeamCity

JetBrains の公式ページより。
https://www.jetbrains.com/teamcity/download/#section=linux-version

インスタンスへ直接ダウンロードする場合は、ダウンロード ページにダイレクト リンクがあるので、これを利用する。
展開、配置、起動までおこなっておく。

$ cd ~
$ wget https://download.jetbrains.com/teamcity/TeamCity-9.1.6.tar.gz
$ tar -zxvf TeamCity-9.1.6.tar.gz

$ sudo mkdir -p /opt/lib/
$ sudo mv TeamCity /opt/lib/TeamCity-9.1.6
$ sudo ln -s /opt/lib/TeamCity-9.1.6 /opt/lib/teamcity

$ sudo /opt/lib/teamcity/bin/runAll.sh start

この時点で、TeamCity は起動している。
http://{server.address}:8111/ へアクセスすることで、起動は確認できる。
ウィザードを進めることで、セットアップはできるがまだしない。

セットアップ - データベース

手軽に利用を開始したければ、内部データベースとして HSQLDB も利用することができるので、データベースのセットアップはスキップしてもいい。

ただし、サーバーの負荷状況次第で、万が一 TeamCity が不調に陥ったりして不正に停止してしまったりすると、内部データベースが巻き込まれ、構成情報が破損する場合があるため、可能な限りデータベースは別で構築しておくのがオススメ。
また、データベースのバックアップやスケールなど、可用性を高めたい場合も、別途データベースをセットアップしておく必要がある。

今回は、PostgreSQL をセットアップする。
apt-get でインストールして、TeamCity 用のユーザー、データベースを作成する。

$ sudo apt-get install postgresql
$ sudo apt-get install postgresql-client

$ sudo su postgres
[sudo] password for :

postgres@..$ createuser -P -d -l teamcity
Enter password for new role:
Enter it again:

postgres@..$ psql
psql (9.3.10)
Type "help" for help.

postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 teamcity  | Create DB                                      | {}

postgres=# CREATE DATABASE teamcity;
CREATE DATABASE

postgres=# ALTER USER teamcity SET search_path to teamcity;
ALTER ROLE

postgres=# \connect teamcity;
You are now connected to database "teamcity" as user "postgres".

teamcity=# CREATE SCHEMA teamcity AUTHORIZATION teamcity;
CREATE SCHEMA

teamcity=# \q
postgres@..$ exit
exit

$ cd /

セットアップ - TeamCity

ここまでで、TeamCity を利用するための準備は完了。
今度こそ、http://{server.address}:8111/ へアクセスして、セットアップを進める。

セットアップ ウィザードでは、はじめにデータ ディレクトリのロケーション指定を求められる。
今回は、/var/opt/teamcity にディレクトリを作成して指定する。

$ sudo mkdir -p /var/opt/teamcity
Property Value
Data Directory location /var/opt/teamcity/.BuildServer

スクリーンショット 2016-02-07 1.12.24.png

ウィザードを進めて、先ほど おこなったデータベースのセットアップのとおり、接続情報を入力する。

Property Value
Database host[:port] localhost:5432
Database name teamcity
User name teamcity
Password ****

スクリーンショット 2016-02-06 23.06.14.png

ここで、JDBC ドライバーの配置が必要になるため、ダウンロードと配置をおこなう。
PostgreSQL の場合はこちらから。
https://jdbc.postgresql.org/download.html#current

$ cd /var/opt/teamcity/.BuildServer/lib/jdbc
$ sudo wget https://jdbc.postgresql.org/download/postgresql-9.4.1207.jre7.jar

ダウンロードしたら、セットアップウィザード上の [Reflesh JDBC drivers] ボタンをクリックして、ダウンロードしたドライバーを認識させる。

スクリーンショット 2016-02-06 23.08.41.png

ドライバーが認識されたら、引き続きウィザードを進めていく。

次に、License Agreement の確認を求められるので、[Accept license agreement] をチェックして [Continue >>] する。

スクリーンショット 2016-02-06 23.11.10.png

以上でセットアップは完了する。

初回利用時に、管理者アカウントの作成が求められるので、これを作成してログインすることで、利用できるようになる。

スクリーンショット 2016-02-06 23.11.52.png

ログイン後。
画面左上の [Projects] から、プロジェクトの作成がおこなえる。

スクリーンショット 2016-02-06 23.13.45.png

Github などからプロジェクトの URL を持ってくれば、[+Create project from URL] で、簡単にプロジェクトの作成がおこなえる。

スクリーンショット 2016-02-06 23.14.16.png

36
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
38