TeamCity 2020.2 ヘルプ

TeamCity サーバーのインストールと設定

このページでは、新しい TeamCity サーバーのインストールについて説明します。アップグレード手順については、アップグレードを参照してください。

TeamCity サーバーをインストールするには、次の手順に従います。

  1. 以下の詳細に基づいて、適切な TeamCity ディストリビューション(.exe.tar.gz、または Docker イメージ(英語))を選択します。AWS スタックで TeamCity を実行することもできます。

  2. ディストリビューションをダウンロードします。

  3. ソフトウェア要件ハードウェア要件のメモ、およびプラットフォームの選択を確認してください

  4. TeamCity ライセンスポリシーを確認してください。

  5. 以下の手順に従って TeamCity サーバーをインストールして設定します。

TeamCity サーバーをインストールする

TeamCity インストールオプションのいずれかを選択したら、対応するインストール手順に進みます。

.exe および .tar.gz ディストリビューション:

  • TeamCity がテストされている Tomcat バージョンを含めてください。これにより、動作する組み合わせとして知られています。これは、外部 Tomcat には当てはまらない場合があります。

  • サーバーの実行に通常推奨される追加の JRE オプションを定義します。

  • teamcity-server 起動スクリプトには、いくつかの便利なオプション(たとえば、メモリ設定用の個別の環境変数)を提供し、TeamCity を正しく構成します(たとえば、.log4j 構成)。

  • 少なくとも Windows では、場合によっては(Java のインストールが欠落しているなど)エラー報告を改善します。

  • Windows では、TeamCity をコンソールとして実行する場合と同じ構成を使用する機能を持つサービスとして実行できます。

  • ビルドエージェントのディストリビューションと、1 つのエージェントで TeamCity サーバーを簡単に評価できる単一の起動スクリプトがバンドルされています。

  • TeamCity プラグイン開発(英語)の devPackage にバンドルされています。

  • 将来、より便利な機能を提供する可能性があります。

インストール後、TeamCity Web UI に Web ブラウザーからアクセスできます。デフォルトのアドレスは、Windows ディストリビューションの場合は http://localhost/ (英語)tar.gz ディストリビューションの場合は http://localhost:8111/ (英語) です。

インストールに成功しても TeamCity Web UI にアクセスできない場合は、TeamCity インストールのトラブルシューティングのセクションを参照してください。

Windows、Linux、または macOS には、ビルドサーバーと 1 つのビルドエージェントがデフォルトでインストールされます。さらにビルドエージェントが必要な場合は、追加のビルドエージェントのインストールセクションを参照してください。

Windows インストールパッケージを介した TeamCity のインストール

Windows プラットフォームの場合は、実行可能ファイルを実行してインストールの指示に従います。TeamCity Web サーバーと Windows サービスとして実行できる 1 つのビルドエージェントをインストールするオプションがあります。

サービスのインストールを選択した場合は、標準の Windows Services アプレットを使用してサービスを管理します。それ以外の場合は、標準スクリプトを使用します。

インストール中にデフォルトのポート(80)を変更しなかった場合、TeamCity Web UI は、サーバーがインストールされているのと同じマシンで実行されている Web ブラウザーで http://localhost/ (英語) を介してアクセスできます。ポート 80 は、他のプログラム(たとえば、Skype、または IIS などの他の Web サーバー)で使用できることに注意してください。この場合、インストール中に別のポートを指定し、ブラウザーで http://localhost:<port>/ (英語) アドレスを使用できます。

インストール後に TeamCity サーバーのサービスパラメーター、メモリ設定、またはシステムプロパティを編集する場合は、TeamCity サーバー起動プロパティの設定ページを参照してください。

Tomcat サーブレットコンテナーにバンドルされている TeamCity のインストール (Linux、macOS、Windows)

インストールの前にソフトウェア要件を確認してください。

TeamCity<version number>.tar.gz アーカイブを解凍します(たとえば、Linux では tar xfz TeamCity<version number>.tar.gz コマンド、Windows では WinZip、WinRar、または同様のユーティリティを使用します)。GNU tar を使用して解凍します(たとえば、Solaris 10 tar は長すぎるファイル名を切り捨てることが報告されており、解凍後にサーバーを使用すると ClassNotFoundException が発生することがあります。Solaris パッケージ(英語)または gtar xfz コマンドで GNU tar を入手することを検討してください)。

JRE または JDK がインストールされており、JAVA_HOME 環境変数が Java インストールディレクトリを指していることを確認してください。Java JDK1.8.0_161 以降が必要です。

無人 TeamCity サーバーインストール

自動サーバーインストールの場合は、.tar.gz ディストリビューションを使用してください。

通常は、解凍して本番用のサーバーの設定セクションに記載されている手順をスクリプトに実行させる必要があります。

事前に構成されたサーバーをすぐに入手したい場合は、事前に構成されたサーバーのファイルをデータディレクトリに配置します。新しいサーバーごとに、新しいデータベース( <Data Directory>\config\database.properties で構成)を指していることを確認し、<Data Directory>\config\main-config.xml ファイルを変更して、ルート XML 要素に uuid 属性を持たないようにし(新しい URL を生成できるようにする)、「rootURL 」属性。

Tomcat の他のバージョンを使う

.tar.gz および .exe ディストリビューションにバンドルされているものの代わりに TomcatWeb サーバーの別のバージョンを使用するには、Tomcat のアップグレード / パッチを実行できます。

後者の場合は、次のようにします。

  • 現在の TeamCity ホームをバックアップします。

  • Tomcat ディストリビューションにも存在する TeamCity ホームからディレクトリを削除 / 削除します。

  • Tomcat ディストリビューションを TeamCity ホームディレクトリに解凍します。

  • TeamCity 固有のファイルを以前にバックアップ / 移動したディレクトリから TeamCity ホームにコピーします。すなわち:
    • Tomcat ディストリビューションには存在しない bin のファイル

    • デフォルトの Tomcat conf ディレクトリと TeamCity のディレクトリの違いを確認し、Tomcat ファイルを TeamCity 固有の設定で更新します。(teamcity-* ファイル、および server.xml の一部)

    • デフォルトの Tomcat webapps/ROOT ディレクトリを削除し、TeamCity によって提供されたものと置き換えます。

TeamCity サーバーの起動

Windows では、TeamCity サーバーが Windows サービスとしてインストールされている場合は、通常のサービス開始およびサービス停止手順に従ってください。

TeamCity が .exe または .tar.gz ディストリビューションを使用してインストールされている場合、TeamCity サーバーは、<TeamCity Home>/bin ディレクトリで提供される teamcity-server スクリプトによって開始および停止できます。スクリプトは、run (同じコンソールで実行)、start (新しいデタッチされたプロセスを開始し、スクリプトを終了する)、および stop コマンドを受け入れます。

  • (評価のみ)TeamCity サーバーと 1 つのデフォルトエージェントを同時に起動 / 停止するには、runAll スクリプトを使用、例:

    • runAll.bat start を使用してサーバーとデフォルトのエージェントを起動する

    • runAll.bat stop を使用してサーバーとデフォルトのエージェントを停止します

  • TeamCity サーバーのみを起動 / 停止するteamcity-server スクリプトを使用して必要なパラメーターを渡します。使用方法を確認するには、パラメーターなしでスクリプトを起動します。 teamcity-server スクリプトは、stop コマンドに対して以下のオプションをサポートします。

    • stop n — 停止コマンドを TeamCity サーバーに送信し、プロセスが終了するまで最大 n 秒待機します。

    • stop n -force — 停止コマンドを TeamCity サーバーに送信し、プロセスが終了するまで最大 n 秒間待機し、サーバープロセスが停止しなかった場合はサーバープロセスを終了します。

デフォルトでは、TeamCity は http://localhost:8111/ (英語) 上で動作します。サーバーポートを変更するには、以下の情報を参照してください。

特別なプロパティをサーバーに渡す必要がある場合は、TeamCity サーバー起動プロパティの設定を参照してください。

macOS 上の TeamCity サーバーを自動起動

macOS で TeamCity サーバーを起動することは、macOS で Tomcat を起動することと非常によく似ています。

  1. TeamCity をインストールし、bin/teamcity-server.sh start を使用してコマンドラインから起動した場合に動作することを確認します。TeamCity は /Library/TeamCity フォルダーにインストールされていると仮定します

  2. 次の内容で /Library/LaunchDaemons/jetbrains.teamcity.server.plist ファイルを作成します。

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>WorkingDirectory</key> <string>/Library/TeamCity</string> <key>Debug</key> <false/> <key>Label</key> <string>jetbrains.teamcity.server</string> <key>OnDemand</key> <false/> <key>KeepAlive</key> <true/> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>--login</string> <string>-c</string> <string>bin/teamcity-server.sh run</string> </array> <key>RunAtLoad</key> <true/> <key>StandardErrorPath</key> <string>logs/launchd.err.log</string> <key>StandardOutPath</key> <string>logs/launchd.out.log</string> </dict> </plist>
  3. 次のコマンドを実行してファイルをテストします。

    launchctl load /Library/LaunchDaemons/jetbrains.teamcity.server.plist

    このコマンドは TeamCity サーバーを起動するはずです(これは logs/teamcity-server.log から、あなたのブラウザーで見ることができます)。

  4. ルート権限で TeamCity を起動したくない場合は、.plist ファイルで UserName キーを指定します。例:

    <key>UserName</key> <string>teamcity_user</string>

マシンの起動時に TeamCity サーバーが自動的に起動します。TeamCity Build Agent の自動起動を設定するには、専用のセクションを参照してください。

インストール構成

TeamCity インストールのトラブルシューティング

インストールが正常に完了すると、TeamCity サーバーの WebUI に Web ブラウザーを介してアクセスできます。同じマシンから TeamCity にアクセスするために使用できるデフォルトのアドレスは、インストールパッケージとインストールオプションによって異なります。(別のポートが指定されていない限り、ポート 80 は Windows のインストールに使用され、サーバー構成で変更されていない限り、.tar.gz のインストールにはポート 8111 が使用されます)。

TeamCity Web UI にアクセスできない場合は、以下を確認してください。

  • "TeamCity サーバー " サービスが実行されています (Windows サービスとして TeamCity をインストールした場合)

  • TeamCity サーバープロセス(Tomcat)が実行 (これは、<TeamCity Home>/bin ディレクトリで実行される java プロセスです。)

  • コンソールからサーバーを実行した場合のコンソール出力

  • エラーメッセージ用の teamcity-server.log および <TeamCity Home>\logs ディレクトリ内の他のファイル

サーバーのインストールに関する最も一般的な問題の 1 つは、別のプログラムによってすでに使用されているポートを使用することです。デフォルトポートの変更については下記を参照してください。

サーバーポートの変更

TeamCity サーバーの Windows インストーラーを使用する場合は、インストール中に使用するポートを設定できます。

.tar.gz ディストリビューションを使用している場合は、以下の手順に従ってポートを変更してください。他のアプリケーションが TeamCity サーバーと同じポートを使用している場合、TeamCity サーバー(Tomcat サーバー)は起動せず、サーバーログまたはサーバーコンソールに "Address already in use" エラーが表示されます。

サーバーポートを変更するには、<TeamCity Home>/conf/server.xml ファイルで、コメント化されていない <Connector> XML ノードのポート番号を変更します(ここでは、ポート番号は 8111 です)。

<Connector port="8111" ...

変更を適用するには、サーバーを再起動します。サーバーが以前に古いポートを使用していた場合は、サーバーに保存されているすべての URL(ブラウザーのブックマーク、エージェントの serverUrl プロパティ、ユーザーの IDE の URL管理 | グローバル設定ページのサーバー URL 設定)のポートを変更する必要があります。

同じマシンで別の Tomcat サーバーを実行している場合は、他の Tomcat サーバーサービスポートも変更する必要があります( server.xml ファイルで port= を検索してください)。

https:// プロトコルを使用したい場合は、別に有効にする必要があります。プロセスは TeamCity に固有のものではなく、使用される Web サーバー(デフォルトでは Tomcat)用です。TeamCity Web UI 用に HTTPS を構成するも参照してください。

サーバーコンテキストの変更

デフォルトでは、TeamCity サーバーはサーバーアドレスのルートコンテキスト( http://localhost:8111/ (英語) など)でアクセス可能です。代わりにネストしたパス(たとえば http://localhost:8111/teamcity/ (英語))で利用できるようにするには、次の手順を実行する必要があります。

  1. TeamCity サーバーを停止します。

  2. <TeamCity Home>\webapps\ROOT ディレクトリの名前を <TeamCity Home>\webapps\teamcity に変更します。

  3. TeamCity サーバーを起動します。

Java のインストール

TeamCity サーバーは、Tomcat アプリケーションサーバーで実行される JVM Web アプリケーションです。TeamCity サーバーを実行するには、Java SE JRE のインストールが必要です。互換性のある JRE は TeamCity Windows インストーラーにバンドルされていますが、他のディストリビューションを使用する場合は個別にインストールする必要があります。

最新の Java 11 x64 で TeamCity サーバーを実行することをお勧めします。推奨される Java ディストリビューションは Amazon Corretto(英語) です。
サポートされている Java バージョンは、OpenJDK と Oracle Java 8(8u16 以降)および 11 (32 または 64 ビットです。

TeamCity で使用するネイティブライブラリ(Microsoft SQL データベースの統合セキュリティオプションを使用するための .dll など)を構成した場合、JVM x86 /x64 プラットフォームに一致するようにライブラリを更新する必要があります。

TeamCity は次のようにサーバープロセスを実行するために Java を選択します。

  • デフォルトでは、TeamCity インストールにバンドルされた JRE がある場合( <TeamCity Home>\jre ディレクトリが存在する場合)、それが TeamCity サーバープロセスの実行に使用されます。別の JRE を使用するには、TEAMCITY_JRE 環境変数を介してそのパスを指定します。

  • <TeamCity Home>\jre ディレクトリが存在しない場合、TeamCity は、それぞれ JRE または JVM(Java SDK)のインストールディレクトリを指す JRE_HOME または JAVA_HOME 環境変数を探します。両方の変数が宣言されている場合、JRE が使用されます。

Java インストールを更新するために必要な手順は、使用されるディストリビューションによって異なります。

  • TeamCity インストールにバンドルされた JRE がある場合( <TeamCity Home>\jre ディレクトリがあります)、インストール手順に従って新しい JRE をインストールし、結果のディレクトリの内容をコピーして既存の <TeamCity Home>\jre ディレクトリの内容を置き換えることによって更新します。
    <TeamCity Home>\buildAgent ディレクトリから TeamCity エージェントも実行する場合は、JRE の代わりに JDK(Java SDK)インストールをインストールし、JDK インストールディレクトリの内容を <TeamCity Home>\jre にコピーします。

64 ビット Java を使用して TeamCity サーバーを実行する

TeamCity サーバーは 64 ビット JVM にバンドルされていますが、32 ビットと 64 ビットの両方の Java で実行できます。

32 ビット Java を 64 ビット JVM に更新する必要がある場合は、32 ビットから 64 ビット JVM に切り替えるときにメモリ使用量がほぼ 2 倍になることに注意してください。- ビット JVM。TeamCity サーバーのメモリ設定を参照してください。

64 ビット Java に更新するには、Java のバンドルバージョンを使用するか、次のいずれかを実行します。

TeamCity サーバーのメモリ設定

TeamCity サーバーには、子プロセスを起動することもできるメインプロセスがあります。子プロセスはマシン上で使用可能なメモリを使用します。このセクションでは、特別な構成が必要な場合にのみ、メイン TeamCity サーバープロセスのメモリ設定について説明します。
JVM アプリケーションとして、TeamCity メインサーバープロセスは、JVM 専用のメモリのみを使用します。必要なメモリは、使用する JVM(32 ビットまたは 64 ビット)によって異なります。JVM が使用するメモリは通常、ヒープ( -Xmx を介して構成)とメタスペース(使用可能なネイティブメモリの量によって制限される)、内部 JVM(通常は数十 Mb)、およびメモリマップファイルなどの OS 依存メモリ機能で構成されます。TeamCity は主にヒープメモリに依存します。この設定は、TeamCity サーバーを実行している JVM に -Xmx (ヒープスペース)オプションを渡すことにより、TeamCity アプリケーション用に手動で構成できます。

稼働目的で TeamCity の使用を開始するか、評価中にサーバーをロードする場合は、TeamCity サーバーの適切なメモリ設定を手動で設定する必要があります。

メモリ設定変更するには、TeamCity サーバー起動プロパティの設定を参照してください。
通常、これは TEAMCITY_SERVER_MEM_OPTS 環境変数を -Xmx750m のような値に設定することを意味します

Java 8 では無視されるため、TEAMCITY_SERVER_MEM_OPTS 環境変数から -XX:MaxPermSize JVM オプションを削除することをお勧めします(以前に構成されている場合)。

速度が遅い、OutOfMemory エラーが発生する、または TeamCity UI にメモリ関連の警告が常に表示される場合は、設定を次のレベルに上げます。

  • 最小設定 :32 ビット Java -Xmx750m の場合、64 ビット Java(バンドル) -Xmx1024m の場合

  • 中規模サーバーでの使用に推奨される設定 :32 ビット Java -Xmx1024m の場合。32 ビット Java の設定を大きくすると、「ネイティブメモリ割り当て(malloc)が失敗しました」という OutOfMemoryError JVM がクラッシュするか、「新しいネイティブスレッドを作成できません」というメッセージが表示されます。64 ビット Java -Xmx2048m の場合。

  • 大規模サーバーでの使用に推奨される設定(64 ビット Java を使用する必要があります): -Xmx4g -XX:ReservedCodeCacheSize=450m これらの設定は、最大 200 のエージェントと数千のビルド構成のインストールに適しています。インストールされたカスタムプラグインでは、Xmx パラメーターで定義された値を増やす必要がある場合があります。

  • 大規模サーバー使用の最大設定(64 ビット Java を使用する必要があります): -Xmx10g -XX:ReservedCodeCacheSize=640m より大きな値は、より大きな TeamCity インストールに使用できます。ただし、一般に、TeamCity サポートに相談せずに 10g より大きい値を使用することはお勧めしません。

ヒント :

  • 32 ビット JVM は、最大 1Gb のヒープメモリ(Xmx1024m )で確実に機能します。(これは -Xmx1200m に増やすことができますが、Windows での JVM はこの設定で時々クラッシュする可能性があります。)より多くのメモリが必要な場合は、64 ビット JVM を 2Gb 以上割り当てて使用する必要があります(-Xmx2048m )。TeamCity サーバーが 100 を超えるエージェントで実行されているか、非常にアクティブなビルド / 数千のユーザーにサービスを提供していない限り、4Gb を超えるメモリを TeamCity プロセス専用にする必要はほとんどありません。

  • 経験則として、64 ビット JVM には、同じアプリケーションの 32 ビットの 2 倍のメモリを割り当てる必要があります。64 ビット JVM に切り替える場合(たとえば、Windows インストーラーを使用して TeamCity 2020.1 にアップグレードする場合)、それに応じてメモリ設定(-Xmx)を調整してください。アプリケーションに割り当てるメモリ量が 2 倍未満の場合は、64 ビットに切り替えても意味がありません。

  • 大規模な TeamCity インストールでは、メモリ設定の微調整が有効な場合があります。TeamCity サーバー JVM 専用のメモリ量は、定期的にマシン上で使用可能な物理メモリの合計 (ネストされたプロセスおよび OS レベルのキャッシュ使用の許可) の 60% を超えないようにしてください。また、ヒープ ( – Xmx) が 8Gb を超えるように設定されていて、マシンに多くの CPU コア (たとえば 8 以上) があり、現在の CPU 使用率が 60% 未満である場合は、-XX:+UseG1GC JVM オプションを介して G1JVM ガーベッジコレクターを有効にすると、stop-the-world GC による一時停止の長さを減らすことができます。

推奨されるアプローチは、初期設定から開始し、管理 | 診断ページを使用して使用済みメモリの割合を監視することです。サーバーが数十分間、80% を超えるメモリを継続的に使用する場合、これはおそらく -Xmx メモリ値をさらに 20% 増加させる兆候です。

TeamCity サーバーの設定

TeamCity データディレクトリの設定

TeamCity データディレクトリのデフォルトの配置は変更できます。詳細については、TeamCity データディレクトリを参照してください。

サーバー設定の編集

サーバーが正常に起動すると、TeamCity ページ要求はリダイレクトされ、サーバー管理者のユーザー名とパスワードの入力を求められます。管理者アカウントがセットアップされるまで、誰もサーバーページにアクセスできないことを確認してください。

管理者アカウントの設定後、TeamCity サーバーでプロジェクトとビルドの設定を作成し始めることができます。サーバー管理セクションで、次の設定を構成することもできます。

  • サーバー URL

  • メールサーバーのアドレスと設定

  • Jabber サーバーのアドレスと設定

本番用のサーバーの設定

すぐに使える TeamCity サーバーのインストールは評価目的に適しています。本番用には、通常次の追加設定を行う必要があります。

パフォーマンスおよびセキュリティに関する注意事項についてサーバーを構成する際の注意事項を必ず確認してください。