TeamCity オンプレミス 2025.11 ヘルプ

使い方 ...

バンドルされていないバージョンの Java をインストールする

TeamCity サーバーを実行するには、Java SEJRE をインストールする必要があります。互換性のある JRE バージョンは TeamCity .exe インストーラーにバンドルされていますが、他のディストリビューションを使用する場合は個別にインストールする必要があります。

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 にコピーします。

無人 Java アップグレード

Java がパッケージマネージャー(たとえば、Linux の apt-get)経由でインストールされた場合、Java が最新バージョンにサイレントアップデートされる可能性があります。このバージョンが TeamCity でサポートされている場合でも、特定の問題が発生する可能性があります。たとえば、すでに実行中のビルドエージェントは再起動する必要があります。再起動しないと、正しい JDK が見つからず、タスクの実行に失敗します。

これらの潜在的な問題を回避するには、Java をインストールし、JAVA_HOME および TEAMCITY_JRE 環境変数を手動で構成することをお勧めします。例: 次のコマンドを実行して、Ubuntu の無人アップグレード(英語)を無効にすることができます。

# Check the unattended upgrade status systemctl status unattended-upgrades # Stop the service sudo systemctl stop unattended-upgrades # Disable the service sudo systemctl disable --now unattended-upgrades # Edit the configuration file sudo nano /etc/apt/apt.conf.d/20auto-upgrades # TODO: Insert or edit the 'APT::Periodic::Unattended-Upgrade "0";' line in the config file

32 ビットから 64 ビットの Java に更新

TeamCity サーバーは 64 ビット JVM にバンドルされていますが、両方の 32- および 64 ビットバージョンで実行できます。

32 ビット Java を 64 ビット JVM に更新する必要がある場合は、32 ビットから 64 ビットに切り替えるとメモリ使用量がほぼ 2 倍になることに注意してください。32 ビット JVM の場合の少なくとも 2 倍のメモリを指定するようにしてください。メモリ設定を変更する方法を参照してください。

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

  1. サーバーが使用する Java を更新します。

  2. JVM メモリオプションを設定します。64 ビット JVM には -Xmx4g オプションを設定することをお勧めします。

バンドルされていないバージョンの Tomcat をインストールする

TeamCity サーバーディストリビューションには、現在のバージョンで正常に動作することがテストされた Tomcat バージョンが含まれています。別の Tomcat バージョンを使用することもできますが、他の組み合わせが正しく機能することは保証されていないことに注意してください。

バンドルされているものの代わりに別のバージョンの TomcatWeb サーバーを使用するには、Tomcat のアップグレード / パッチを実行する必要があります。

TeamCity で使用する Tomcat のバージョンをアップグレードする場合は、次のことをお勧めします。

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

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

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

  • 以前にバックアップ / 移動したディレクトリから TeamCity 固有のファイルを TeamCity ホームにコピーします。

    • Tomcat ディストリビューションには存在しない bin のファイル

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

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

macOS で TeamCity サーバーを自動起動する

このコンテンツは TeamCity サーバー記事の開始に移動されました。

TeamCity サーバーのインストールを自動化する

自動化された TeamCity サーバーのインストールには、.tar.gz ディストリビューションを使用します。

通常、それを解凍し、スクリプトにこのセクションに記載されている手順を実行させる必要があります。

事前構成されたサーバーをすぐに取得する場合は、以前に構成されたサーバーのファイルをデータディレクトリに配置します。新しいサーバーごとに、次のことを行う必要があります。

  • 新しいデータベース(<Data Directory>\config\database.properties で構成されている)を指していることを確認します。

  • ルート XML 要素に uuid 属性が含まれないように <Data Directory>\config\main-config.xml ファイルを変更します(新しい属性を生成できるようにします)。rootURL 属性に適切な値を設定します。

管理者パスワードを取得する

空のデータベースで最初に起動すると、TeamCity は管理者設定ページを表示します。このページでは、完全な管理権限を持つユーザーを作成できます(システム管理者ロールを割り当てる)。

システムへのアクセスを回復したいが、システム管理者ロールを持つユーザーとしてログインできない場合は、スーパーユーザーとしてログインし、既存の管理者アカウントのパスワードを変更するか、システム管理者ロールを持つ新しいアカウントを作成できます。

REST API を使用して既存のユーザーにシステム管理者のロールを追加することもできます。

組み込み認証を使用し、正しいメールを指定している場合は、ログインページからパスワードをリセットできます。

レプリケーション / クラスタリング環境での TeamCity の設定

セカンダリ TeamCity ノードを追加して高可用性を確保し、メインサーバーから一部の操作をオフロードすることができます。すべてのノードは同じ TeamCity Data Directory とデータベースに接続する必要があります。

高速災害復旧シナリオに対応するために、TeamCity はアクティブ - フェイルオーバー(コールドスタンバイ)アプローチをサポートしています。TeamCity サーバーが使用するデータを複製し、現在アクティブなサーバーが故障した場合は同じデータを使用して新しいサーバーを起動するソリューションを導入できます。

データに関しては、TeamCity サーバーはデータベースとファイルストレージ (データディレクトリ) の両方を使用します。TeamCity のデータ保存の詳細については、TeamCity データのバックアップおよび TeamCity データディレクトリページを参照してください。基本的に、ディスク上の TeamCity データディレクトリと TeamCity が使用するデータベースの両方が一貫した状態を維持する必要があり、一緒に複製される必要があります。
データベースとデータディレクトリは常に 1 つの TeamCity サーバーインスタンスのみが使用する必要があります。

TeamCity フェイルオーバー / バックアップサーバーのディストリビューションがメインサーバーとまったく同じバージョンであることを確認してください。また、メモリ設定など、同じサーバー環境 / 起動オプションを確保することも重要です。

TeamCity エージェントファームは、メインサーバーとフェールオーバーサーバーの間で再利用できます。フェールオーバーサーバーを古いサーバーの DNS 名で解決するように設定し、エージェントが DNS 名を使用してサーバーに接続すると、エージェントは新しいサーバーに自動的に接続します。あるサーバーから別のサーバーへの切り替えに関する情報も参照してください。
適切な場合、エージェントはサーバーと同様に複製できます。ただし、conf\buildAgent.properties ファイル以外の TeamCity 固有のデータをエージェントに複製する必要はありません。残りのデータは通常、サーバーから更新できるためです。複製されたエージェントファームの場合、レプリカエージェントをフェールオーバーサーバーに接続するだけで済みます。

冗長性の目的で 2 台のサーバーをインストールする場合、どちらか一方のみが実行されているため、同じライセンスセットを使用できます。

必要なビルドエージェントの数を見積もる

必要なビルドエージェントの数は、サーバーの使用パターン、ビルドのタイプ、チームサイズ、CI プロセスへのチームのコミットメントなどによって異なります。一般に、最善の方法は、3 つのエージェントから始めて、それらがサーバー上のプロジェクトをどのように処理するかを確認してから、将来の見積もりを行うことです。

次のような場合は、エージェントの数を増やすことをお勧めします。

  • ビルドキュー内のアイドル状態のエージェントを待ってビルドします。

  • 各ビルドには、快適と思われるよりも多くの変更が含まれています(たとえば、ビルドの失敗の分析など)。

  • さまざまな環境の必要性。

20 のビルド構成(ビルドのタイプ)ごとにエージェントが存在するパターンを見てきました。または、1 〜 2 人の開発者ごとのビルドエージェント。

新しくインストールした MySQL サーバーを設定する

基本セットアップに加えて、MySQL サーバーを TeamCity で使用する場合は、MySQL サーバー設定の一部を確認し、場合によっては変更する必要があります。MySQL が Windows にインストールされている場合、設定は my.ini ファイルにあり、通常は MySQL インストールディレクトリにあります。Unix 系システムの場合、ファイルは my.cnf と呼ばれ、/etc ディレクトリのどこかに配置できます。構成ファイルの場所の詳細については、MySQL のドキュメント(英語)を参照してください。注: my.ini|my.cnf で設定を変更した後は、MySQL サーバーを再起動する必要があります。

以下の設定を確認または変更する必要があります。

テーブルの主キー

TeamCity は主キーを持たないテーブルを管理します。そのため、MySQL サーバーの sql_require_primary_key(英語) システム変数を OFF に設定する必要があります。

InnoDB データベースエンジン

TeamCity データベースのテーブルに InnoDB データベースエンジンを使用していることを確認してください。どのエンジンがこのコマンドの助けによって使用されるか確認できます:

show table status like '<table name>';

または一度にすべてのテーブルに対して:

show table status like '%';

max_connections

max_connections パラメーターの値が、TeamCity <TeamCity Home Directory> /config/database.properties ファイルで指定された値よりも大きいことを確認する必要があります。

innodb_buffer_pool_size および innodb_redo_log_capacity

innodb_buffer_pool_size に小さすぎる値を指定すると、パフォーマンスに大きな影響を与える可能性があります。

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and # row data. The bigger you set this the less disk I/O is needed to # access data in tables. On a dedicated database server you may set this # parameter up to 80% of the machine physical memory size. Do not set it # too large, though, because competition of the physical memory may # cause paging in the operating system. Note that on 32bit systems you # might be limited to 2-3.5G of user level memory per process, so do not # set it too high. innodb_buffer_pool_size=2000M

2Gb から始めて、速度が遅く、十分なメモリがある場合は、それを増やすことをお勧めします。バッファプールサイズを増やした後、 innodb_redo_log_capacity (英語) 設定のサイズも変更する必要があります。

innodb_redo_log_capacity=2048M

MySQL バージョン 8.0.30 以前(英語)の場合、innodb_redo_log_capacity の代わりに innodb_log_file_size および innodb_log_files_in_group パラメーターを使用します。

# innodb_log_files_in_group=2 is set by default innodb_log_file_size=1024M

innodb_file_per_table

パフォーマンスを向上させるために、いわゆるテーブルごとの表領域(英語)を有効にすることができます。innodb_file_per_table オプションを追加すると、新しいテーブルが作成されて別々のファイルに配置されますが、このオプションを有効にする前に作成されたテーブルは引き続き共有テーブルスペースにあることに注意してください。別々のファイルに配置するには、データベースを再インポートする必要があります。

innodb_flush_log_at_trx_commit

TeamCity が MySQL データベースを使用する唯一のアプリケーションの場合は、innodb_flush_log_at_trx_commit 変数を 2 または 0 に設定することでパフォーマンスを向上させることができます。

# If set to 1, InnoDB will flush (fsync) the transaction logs to the # disk at each commit, which offers full ACID behavior. If you are # willing to compromise this safety, and you are running small # transactions, you may set this to 0 or 2 to reduce disk I/O to the # logs. Value 0 means that the log is only written to the log file and # the log file flushed to disk approximately once per second. Value 2 # means the log is written to the log file at each commit, but the log # file is only flushed to disk approximately once per second. innodb_flush_log_at_trx_commit=2

注: データベースが完全な ACID 動作を提供することは TeamCity にとって重要ではないため、この変数を安全に変更できます。

異なるディスク上のログファイル

MySQL ログファイルを別のディスクに配置すると、パフォーマンスの向上に役立つ場合があります。MySQL のドキュメント(英語)でそれについて読むことができます。

バイナリログ形式の設定

デフォルトの MySQL バイナリログ形式が MIXED でない場合(使用している MySQL(英語)バージョン(英語)によって異なります)、明示的に MIXED に設定する必要があります。

binlog-format=mixed

追加の診断を有効にする

データベース固有のエラーが発生した場合に追加の診断データを取得するには、SQL コマンドを使用して TeamCity データベースユーザーにさらに権限を付与します。

GRANT PROCESS ON *.* TO <teamcity-user-name>;

新しくインストールした PostgreSQL サーバーの設定

TeamCity サーバーのパフォーマンスを向上させるために、新しくインストールした PostgreSQL サーバーの一部のパラメーターを変更することをお勧めします。PostgreSQL Wiki(英語) で PostgreSQL のパフォーマンス最適化についてさらに読むことができます。

以下のパラメーターは PostgreSQL のデータディレクトリにある postgresql.conf ファイルで変更できます。

shared_buffers

https://www.postgresql.org/docs/current/static/runtime-config-resource.html#GUC-SHARED-BUFFERS(英語) パラメーターのデフォルト値は小さすぎるため、増やす必要があります。

shared_buffers=512MB

synchronous_commit

TeamCity が PostgreSQL データベースを使用する唯一のアプリケーションの場合は、https://www.postgresql.org/docs/current/static/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT(英語) パラメーターを無効にすることをお勧めします。

synchronous_commit=off

チェックポイント関連のパラメーター

TeamCity のような書き込みが多いアプリケーションでは、チェックポイント関連のパラメーター(英語)の一部を変更することをお勧めします。

PostgreSQL 9.5 以降の場合:

max_wal_size = 1500MB checkpoint_completion_target=0.9

バージョン PostgreSQL 9.5 より前の場合:

checkpoint_segments=32 checkpoint_completion_target=0.9

プロキシサーバーの背後に TeamCity をセットアップする

このセクションの内容は、専用の記事に移動されました。

スタックトレースを非表示にする

TeamCity サーバーへのアクセス権を持つユーザーが無効なクロスサイトスクリプティング(XSS)ペイロードを送信した場合、サーバーは関連するスタックトレースを含む「予期しないエラー」ページを表示します。このスタックトレースによって環境に関する機密情報が公開されるのを防ぐため、スタックトレースの表示を無効にすることをお勧めします。そのためには、teamcity.web.runtimeError.showStacktrace 内部プロパティfalse に設定してください。

TeamCity Web UI 用に HTTPS を構成する

TeamCity では、HTTPS アクセスを簡単に構成できるようになりました。ただし、大規模な公開 TeamCity インストールの場合は、HTTPS を処理し、HTTP TeamCity サーバーポートをアップストリームとして使用する NGINX や Apache などのリバースプロキシを TeamCity の前に設定することをお勧めします。

プロキシの HTTPS 関連の構成は、TeamCity に固有のものではなく、他の Web アプリケーションと同様に一般的です。推奨に従ってリバースプロキシを設定してください。一般的な Web アプリケーションのベストプラクティスが適用されます (TeamCity への http アクセスをまったく無効にするなど)。

小規模サーバーの場合は、内部トムキャット手段(英語)を介して HTTPS をセットアップできますが、CPU 負荷が大幅に増加する可能性があるため、これはお勧めできません。

自己署名証明書を使用しながら HTTPS 経由で TeamCity サーバーにアクセスするようにクライアントを構成するには、関連する手順を確認してください。

発信接続にプロキシサーバーを使用するように TeamCity を構成する

このセクションの内容は、専用の記事に移動されました。

TeamCity サーバーに接続するためにプロキシを使用するように TeamCity エージェントを構成する

このセクションでは、TeamCity エージェントからサーバーへの接続用のプロキシサーバーの構成について説明します。

TeamCity エージェント側で、 buildAgent.properties ファイルの以下のプロパティを使用して TeamCity サーバーに接続するためのプロキシを指定します。

## The domain name or the IP address of the proxy host and the port teamcity.http.proxyHost=123.45.678.9 teamcity.http.proxyPort=8080   ## If the proxy requires authentication, specify the login and password teamcity.http.proxyLogin=login teamcity.http.proxyPassword=password

プロキシは TeamCity サーバーの応答をキャッシュしないように設定する必要があります。たとえば、Squid を使用している場合は、squid.conf ファイルに「cache deny all」という行を追加します。

同じマシンに複数のエージェントをインストールする

エージェントのインストールドキュメントの対応するセクションを参照してください。

サーバーポートの変更

サーバーのインストール手順の対応するセクションを参照してください。

アップグレード前に新しい TeamCity バージョンをテストドライブ

本番サーバーをアップグレードする前に、新しい TeamCity バージョンを試すことをお勧めします。通常の手順は、本番 TeamCity インストールのコピーを作成しそれをアップグレードして試してみて、すべてがチェックされたら、テストサーバーを削除してメインサーバーをアップグレードすることです。テストサーバーを起動するときは、サーバーの URL を変更し、メール通知機能や新しいサーバーの他の機能を無効にすることを忘れないでください。

全データを含む TeamCity サーバーのコピーを作成する

コピーだけでなく元のサーバーも保存したい場合は、ライセンスに関する考慮事項を必ず確認してください。

サーバーコピーを作成する

TeamCity バックアップ機能を使用して、または手動でサーバーのコピーを作成できます。サーバーを完全に移動するには、手動による方法をお勧めします。

TeamCity バックアップを使用

  1. すべてを含むバックアップを作成します。(アーティファクトを移動している場合は、ビルドログをバックアップするオプションをスキップできます。以下を参照してください)。

  2. すでに実行しているのと同じバージョンの新しい TeamCity サーバーをインストールします。確認しておいて:

  3. バックアップを復元します

  4. <TeamCity Data Directory> /system/artifacts ディレクトリの内容を古い場所から新しい場所に移動して、アーティファクト (バックアップには含まれません) を移動します。アーティファクトのサイズが大きい場合があり、これには時間がかかることがあるため、それに応じて計画を立ててください。

  5. 必要な環境転送を実行します。

手動コピー

バンドルされたバックアップ機能を使用しない場合、またはプロセスを手動で制御する必要がある場合は、サーバーのコピーを手動で作成する方法に関する一般的な手順を次に示します。

  1. 何か問題が発生した場合に復元できるようにバックアップを作成してください。

  2. サーバーが稼働していないことを確認します。

  3. クリーンインストールを実行するか、TeamCity バイナリ ( TeamCity Home Directory ) を新しい場所にコピーします (コピー中に temp および work サブディレクトリは省略できます)。まったく同じ TeamCity バージョンを使用します。コピー後にアップグレードする場合は、既存のバージョンが稼働していることを確認した後にのみアップグレードを実行してください。

  4. <TeamCity Data Directory> をコピーします。完全なコピーが必要ない場合は、以下のオプションを参照してください。

    • プロジェクトを保存し、構成設定を構築するための .BuildServer/config

    • .BuildServer/lib.BuildServer/plugins があれば

    • 内部データベースを使用していて、このデータベースを移動したくない場合は、.BuildServer/system のルートからのファイル

    • .BuildServer/system/artifacts (オプション)ビルドアーティファクトとビルドログ(テストの失敗の詳細を含む)を新しいサーバーに保持する場合

    • .BuildServer/system/changes (オプション)個人の変更を新しいサーバーに保存する場合

    • .BuildServer/system/pluginData (オプション)さまざまなプラグイン、ビルドトリガー、設定監査差分の状態を保持したい場合

    • .BuildServer/system/caches (オプション): キャッシュをコピーします。TeamCity は起動時にキャッシュを再生成するため、このフォルダーはスキップできます(ただし、初期段階ではパフォーマンスが低下します)。

  5. アーティファクトディレクトリは通常、サイズが大きいです。サーバーを移動するときにサーバーのダウンタイムを最小限に抑える必要がある場合は、データのコピーに一般的なアプローチを使用できます。元のサーバーが稼働している間に、rsync、robocopy などのツールを使用してデータをコピーします。同期されたデータの量が減るまで、同期を数回繰り返します。元のサーバーがシャットダウンした後、最終的な同期を実行します。サーバー移動の代替ソリューションは、古いデータのアーティファクトディレクトリを新しいサーバーからアクセスできるようにし、アーティファクトの 2 番目の場所として構成することです。次に、サーバーが稼働している間に、この 2 番目の場所からメインの場所へファイルをコピーします。コピーが完了したら、サーバーを再起動します。

  6. TeamCity インストールで使用しているデータベースのコピーを、新しいスキーマまたは新しいデータベースサーバーに作成します。これは、データベース固有のツールを使用するか、バンドルされている maintainDB ツールを使用してデータベースデータをバックアップしてから復元することで実行できます。

  7. 適切な <TeamCity Data Directory> データベースを使用するように新しい TeamCity インストールを構成します (.BuildServer/config/database.properties はデータベースのコピーを指します)。

  8. 必要な環境転送を実行します。

環境移転

既存の TeamCity インストール用に特別に変更されている場合は、関連環境を転送することを検討してください。これには以下が含まれます。

  • 適切に設定された設定、グローバルおよびファイルシステムの権限で TeamCity サーバープロセスを実行するために適切な OS ユーザーアカウントを使用する

  • 同じ TeamCity プロセス起動オプションを使用してください。具体的には、TEAMCITY_ で始まる環境変数をチェック / コピーしてください。

  • 絶対パスを使用して TeamCity Web UI で構成されたすべてのファイル / 設定がアクセス可能であることを確認してください

  • デフォルトの SSH キー、キャッシュされた VCS アクセス認証情報などの OS レベルのユーザー / マシン設定に依存している場合は、それらも転送します

  • ネットワーク構成など、マシンに関連する特別な設定や例外の複製を検討する

  • TeamCity インストールにパッチが適用されている場合(GroovyPlug プラグイン、MS SQL Server 統合セキュリティ認証用のネイティブドライバー)、同じ変更をインストールコピーに適用します。

  • OS スタートアップ(Windows サービスなど)で TeamCity を実行する場合は、新しいマシンで同じ構成が実行されていることを確認してください。

  • <TeamCity Home> \conf\teamcity-startup.properties ファイルの設定を確認して転送する

  • <TeamCity Home> \conf\server.xml のカスタム設定を考慮する

ライセンスの問題

1 つの TeamCity ライセンスを同時に 2 台の稼働中のサーバーで使用することはできません

  • 冗長性 / バックアップ目的で作成されたサーバーのコピーは、一度に 1 つのサーバーのみが実行されるため、同じライセンスを使用できます。

  • テスト目的で作成されたサーバーのコピーには、追加のライセンスが必要です。期間限定の TeamCity 試用ライセンスは、公式 TeamCity ダウンロードページから 1 回取得できます。ライセンスの延長が必要な場合、または同じ TeamCity バージョンをすでに評価している場合は、弊社のセールス部門までお問い合わせください。

  • 定期的に / 運用目的でメインサーバーと同時に実行することを目的としたサーバーのコピーには、別のライセンスが必要です。

コピーしたサーバーのチェックリスト

(サーバーを新しい場所に移動するのではなく) サーバーのコピーを作成する必要がある場合は、以下のチェックリストに従ってください。

  • 元のサーバーとコピーされたサーバーが異なるデータディレクトリ、データベース、アーティファクトディレクトリを使用していることを確認してください。

  • 最初の起動前に、 <TeamCity Data Directory> /config/main-config.xml ファイルの XML から「uuid」属性を削除して、一意のサーバー ID を変更します。

  • 同じライセンスキーが複数のサーバーで使用されていないことを確認してください ( ライセンスの詳細 )。

  • 管理 | グローバル設定ページのサーバー URL をサーバーの実際の URL に更新します。

  • 新しいサーバーで正常に認証できることを確認し、必要に応じてスーパーユーザーアクセスを使用します。

  • VCS サーバー、問題トラッカーサーバー、メールサーバー、その他のサーバーからアクセスされるシステムにアクセスできることを確認します。

  • イベントを TeamCity サーバーにプッシュするように構成されているシステム (VCS フック、自動ビルドトリガー、モニターなど) が、新しいサーバーについて認識するように更新されていることを確認します。

  • インストールされているプラグインのリストを確認して、設定を変更する必要があるかどうかを判断します。

  • 新しいエージェントをインストールし (または既存のエージェントからいくつか選択し)、新しいサーバーに接続するように構成します (新しいサーバー URL を使用)。

  • 必要に応じて、サーバーから読み取るクライアント (アーティファクトのダウンロード、サーバーの REST API、NuGet フィードの使用など) が再構成されていることを確認します。

運用サーバーをコピーしてテストサーバーを作成する場合は、ユーザーと運用システムに影響が及ばないようにする必要があります。

以下は、テストサーバーを初めて起動するに変更する必要がある設定のリストです。

  • S3 バケットや Docker レジストリなどの外部ストレージ内のファイルのクリーンアップを回避するには、クリーンアッププロセスを無効にします。これを行うには、 <TeamCity Data Directory> /config/main-config.xml ファイルを見つけて、<db-compact enabled="true"> 行を <db-compact enabled="false"> に変更します。

  • クラウド統合を無効にします。テストサーバーは新しいクラウドエージェントを起動できません。 <TeamCity Data Directory> /config/internal.properties ファイルに teamcity.cloud.integration.enabled=false 内部プロパティを設定します (このファイルがまだ存在しない場合は作成します)。

  • Commit Status Publisher など、外部システムの状態を変更できるプラグインを無効にします。次の内容のファイル <TeamCity Data Directory> /config/disabled-plugins.xml を作成します。

    <?xml version="1.0" encoding="UTF-8"?> <disabled-plugins> <disabled-plugin name="commit-status-publisher" /> <disabled-plugin name="slackNotifier" /> <disabled-plugin name="email" /> <disabled-plugin name="webhooks" /> <disabled-plugin name="searchBuildByNumber" /> </disabled-plugins>

    TeamCity イベントに基づいて、コピーされていない他のシステムにデータをプッシュするサードパーティのプラグインをこのリストに追加することを検討してください。

  • プロジェクトが VCS に設定を保存しないようにするには、teamcity.versionedSettings.enabled=false 内部プロパティをオフに設定します。

テストサーバーが起動したら、次のようにします。

  • 管理 | 認証に移動し、メール検証を無効にします。

  • テストサーバーが、実稼働環境を変更する (たとえば、実稼働環境にデプロイする) ビルドを実行していないことを確認します。これには通常、ローカル以外のリポジトリにデプロイする Maven ビルドも含まれます。ビルドキューを一時停止すると、ビルドが開始されないようにすることができます。

  • また、VCS による変更間隔の確認 (サーバー全体のデフォルト値と VCS ルートで上書きされた値の両方) を大幅に増やすか、VCS ルートの設定を変更して運用サーバーに接続しないようにすることもできます。TW-47324(英語) も参照してください。

サーバーをあるマシンから別のマシンに移動する方法については、以下のセクションも参照してください。

TeamCity プロジェクトをあるサーバーから別のサーバーに移動する

既存のデータなしで新しいサーバーにデータを移動する必要がある場合は、サーバーを移動またはコピーしてから、新しいサーバー上で不要なデータを削除することをお勧めします。

新しいサーバー上の既存のデータとデータを結合する必要がある場合は、ほとんどの関連データを含むプロジェクトをあるサーバーから別のサーバーに移動するための専用の機能があります。プロジェクトインポート

これを実行したい場合に備えて、設定を手動で移動する際の注意事項がいくつかあります。

簡単なファイルのコピーで、プロジェクトの設定やビルド構成を別のサーバーに移動できます。

2 台の TeamCity サーバー(ソースとターゲット)は、まったく同じバージョン(同じビルド)でなければなりません。

すべてのプロジェクト、ビルド構成、両方のサーバーの VCS ルート全体のすべての識別子は一意である必要があります。一意でない場合は、Web UI から変更できます。同じ ID を持つエンティティが異なるサーバー上に存在する場合、エンティティは同じであると見なされます。たとえば、これはすべてのサーバー上に VCS ルートのグローバルセットを持つ場合に便利です。

プロジェクトとそのすべてのビルド構成の設定をあるサーバーから別のサーバーに移動するには、次の手順を実行します。

TeamCity Data Directory から、対応するプロジェクト(.BuildServer\config\projects\<id>)とそのすべての親プロジェクトのディレクトリをターゲットサーバーの .BuildServer\config\projects にコピーします。これにより、プロジェクト設定、ビルド構成設定、プロジェクトで定義された VCS ルートが移動し、それらの間のリンクが保持されます。コピーされたものと同じ名前のファイルがターゲットサーバーにある場合、これは a)id が一致する場合に発生する可能性があります: 同じエンティティがターゲットサーバーにすでに存在します。この場合、衝突するファイルはコピーから除外できます。または b) ID の衝突: 異なるエンティティがたまたま同じ ID を持っています。この場合、一意性の要件を満たすために、ソースサーバーまたはターゲットサーバーのエンティティ ID を変更することで解決する必要があります。

親プロジェクトのセットは、Web UI またはディスク上のディレクトリ名(デフォルトでは同じ接頭辞が付けられます)に基づいて手動で識別されます。

注: ルートプロジェクトの設定をすべてのサーバー間で同期しておくと便利です (.BuildServer\config\projects_Root ディレクトリの内容を同期することによって)。例: これにより、すべてのサーバーでデフォルトのクリーンアップポリシーの設定が同じになります。

プロジェクトをコピーした後の手順は次のとおりです。

  • ターゲットサーバー上にコピーされた親プロジェクト(存在する場合)の未使用データを削除します

  • 「サーバーヘルス」レポートを使用して、コピーの結果として表示された重複する VCS ルートがあればそれを識別します。

  • ソースサーバーでプロジェクトをアーカイブし、クリーンアップルールを調整する (必要に応じて、ビルドの履歴を見ることができるようにする)

上記のアプローチではコピーされないもの:

  • 一時停止中のビルド構成のコメントとユーザー

  • アーカイブされたプロジェクトのアーカイブユーザー

  • グローバルサーバー設定(たとえば、Maven settings.xml profileshandle.exe などのツール、外部変更ビューアー、ビルドキューの優先順位、課題追跡システム)。これらは .BuildServer\config ディレクトリのさまざまなファイルに保存され、ファイルレベルで、サーバー管理 UI で同じ設定を構成することによって同期する必要があります。

  • エージェントプールとのプロジェクトの関連付け

  • コピーされたものの親ではない他のプロジェクトからのテンプレート。この設定は TeamCity 8.0 では実際には推奨されておらず、レガシーとしてのみサポートされています。複数のプロジェクトで使用されているテンプレートは、共通の親プロジェクトまたはルートプロジェクトに移動する必要があります。

  • エージェントにデータが構成されていない(エージェント上で実行が許可されているビルド構成)。

  • ユーザー関連またはユーザーグループ関連の設定はありません (ロールや通知規則のように)

  • ミュートや調査などの状態関連のデータはありません。

TeamCity インストールを新しいマシンに移動する

既存の TeamCity インストールを新しいハードウェアまたはクリーンな OS に移動する必要がある場合は、新しいマシンに同じ TeamCity バージョンをインストールし、古いサーバーを停止し、新しいサーバーを同じ TeamCity Data Directory に接続して、サーバーが同じ環境を使用していることを確認します。または、サーバーをあるマシンから別のマシンにコピーする手順に従うこともできます。

移動後、変更された場合はクライアントが新しいサーバーアドレスを使用するようにします。

サーバーをあるマシンから別のマシンに移動する場合、既存のライセンスキーを使用できます (2 つのサーバーが同時に実行されていない限り)。ライセンスキーは <TeamCity Data Directory> に保存されるため、ライセンスキーを他のすべての TeamCity 設定データとともに転送します。

通常、TeamCity の更新を環境やハードウェアの変更などの他の操作と組み合わせずに、一度に 1 つずつ変更を実行して、問題が発生した場合にその原因を簡単に追跡できるようにすることをお勧めします。

あるサーバーから別のサーバーに切り替える

<TeamCity Data Directory> とデータベースは、常に 1 つの TeamCity インスタンスによって使用される必要があることに注意してください。同じデータを使用するように新しい TeamCity インスタンスを構成した場合は、新しいインスタンスを起動する前に、古い TeamCity インスタンスをシャットダウンして無効にしてください。

一般に、サーバーへのアクセスにはドメイン名を使用することをお勧めします(エージェント構成内、およびユーザーが TeamCity Web UI にアクセスするとき)。この方法で、DNS エントリを更新してアドレスを新しいサーバーの IP アドレスに解決し、キャッシュされたすべての DNS 結果が期限切れになると、すべてのクライアントが自動的に新しいサーバーを使用します。クライアントが変更を早く理解できるようにするには、変更前に DNS サーバーのキャッシュ / リース時間を事前に短縮する必要があります。

ただし、別のサーバードメインアドレスを使用する必要がある場合は、次のことが必要になります。

  • エージェントを新しい URL に切り替えます(各エージェントの buildAgent.propertiesserverUrl プロパティを更新する必要があります)。エージェントを新しくインストールしたいが、エージェントの名前と認証状況を保存したい場合は、新しいエージェントをインストールして古いエージェントから conf\buildAgent.properties ファイルをコピーすることができます(その中のパスがそれに応じて更新されることを確認します)。

  • 新しいサーバーの起動時に、管理 | グローバル設定ページでサーバー URL を必ず更新してください。

  • 新しい住所ですべての TeamCity ユーザーに通知する

  • 要求元アドレスに依存する場合は、外部サービスの設定を更新することを検討してください。

TeamCity エージェントを新しいマシンに移動する

バイナリとは別に、TeamCity エージェントのインストールには、実行されたビルドから残った構成とデータが保存されます。通常、以前のビルドのデータにより、将来のビルドの準備が少し速くなりますが、必要に応じて削除できます。構成は、conf および launcher\conf ディレクトリに保管されます。前のビルドで収集されたデータは、work および system ディレクトリに保存されます。

エージェントのインストールを新しいマシンまたは新しい場所に移動する最も簡単な方法は、次のとおりです。

  • 既存のエージェントを停止

  • 新しいマシンに新しいエージェントをインストールする

  • 古いインストールから新しいものに conf/buildAgent.properties をコピーする

  • 新しいエージェントを起動します。これらの手順により、エージェントは TeamCity サーバーによって同じものとして認識され、すべてのビルドに対してクリーンチェックアウトが実行されます。

ビルドの一貫性に影響を与えずに削除できるディレクトリのリストについては、セクションも確認してください。

チェーンビルドでビルドのビルド番号を共有する

スナップショット依存関係またはアーティファクト依存関係によって接続されたビルドでは、次の依存関係プロパティへの参照を使用してビルド番号を共有できます: %dep.<btID>.system.build.number%

例: 同期してビルドしたいビルド構成「A」と「B」がある場合: 同じソースを使用し、同じビルド番号を取得します。
以下を実施:

  1. ビルド構成「C」を作成し、依存関係のスナップショットを作成します: 「C」上の「A」と「C」上の「B」。

  2. 「A」と「B」のビルド番号の形式を次のように設定します。

%dep.<btID>.system.build.number%

ここで、<btID>ビルド構成の ID の「C」です。このアプローチは、スナップショットの依存関係スナップショット依存関係オプションをオフに設定してビルドの再利用をオフにした場合に最適に機能します。

依存関係プロパティについての続きを読む

ビルド番号 TW-7745(英語) の共有に関連する問題を見てコメントします。

ビルド間で一時ビルドファイルを消去する

ビルドスクリプトを更新して、${teamcity.build.tempDir} (Ant のスタイル名) プロパティに保存されているパスを一時ディレクトリとして使用します。TeamCity エージェントはビルド前にディレクトリを作成し、ビルド直後に削除します。

構成エラーが原因でビルドが多すぎる場合はビルドキューをクリアする

ビルドがキューに入れられているビルド構成を一時停止してみてください。ビルド構成を一時停止すると、すべてのビルドがキューから削除されます。
また、1 つのダイアログでビルドキューから複数のビルドを削除する機能もあります。

TeamCity ビルド構成設定を自動的に作成または変更する

あるレベルの自動化が必要で Web 管理 UI があなたのニーズに合っていない場合、いくつかの可能性があります。

Cucumber 報告者を Ant ビルドに接続

Java アプリケーションのテストに Cucumber を使用する場合は、cucumber を --expand および特別な --format オプションと共に実行する必要があります。さらに、必要な TeamCity Rake ランナー ruby スクリプトを指す RUBYLIB 環境変数を指定する必要があります。

<<target name="features">     <java classname="org.jruby.Main" fork="true" failonerror="true">       <classpath>         <pathelement path="${jruby.home}/lib/jruby.jar"/>         <pathelement path="${jruby.home}/lib/ruby/gems/1.8/gems/jvyaml-0.0.1/lib/jvyamlb.jar"/>         ....       </classpath>       <jvmarg value="-Xmx512m"/>       <jvmarg value="-XX:+HeapDumpOnOutOfMemoryError"/>       <jvmarg value="-ea"/>       <jvmarg value="-Djruby.home=${jruby.home}"/>       <arg value="-S"/>       <arg value="cucumber"/>       <arg value="--format"/>       <arg value="Teamcity::Cucumber::Formatter"/>       <arg value="--expand"/>       <arg value="."/>       <env key="RUBYLIB"            value="${agent.home.dir}/plugins/rake-runner/rb/patch/common${path.separator}${agent.home.dir}/plugins/rake-runner/rb/patch/bdd"/>       <env key="TEAMCITY_RAKE_RUNNER_MODE" value="buildserver"/>     </java>   </target>

RUBYLIB パス区切り文字 (安全のため、Windows の場合は ';'、Linux の場合は ':'、ant の場合は '$\{path.separator\}') を確認してください。
Rake ビルド言語を使用して Cucumber テストを起動する場合、TeamCity は必要なすべてのコマンドラインパラメーターと環境変数を自動的に追加します。このヒントは、TeamCity バージョン>= 5.0 で機能します。

最後に成功したビルド番号を取得

次のように URL を使用してください。

http://<your TeamCity server>/app/rest/buildTypes/id:<ID of build configuration>/builds/status:SUCCESS/number

ビルド番号はプレーンテキスト応答として返されます。
<ID of build configuration> については、識別子を参照してください。
この機能は REST API によって提供されています

TeamCity で私のアプリケーション用にデプロイを設定する

TeamCity には、ビルドスクリプト / ビルドランナーで構成された実際のデプロイロジックを使用して、デプロイのオーケストレーション部分を処理するための複数の機能があります。TeamCity はさまざまな汎用ビルドツールをサポートしているため、TeamCity 内から特定のツールを実行できます。特定のツールの使用を容易にするために、それをレシピにラップするか、そのためのカスタムプラグインを作成することができます。

詳細については、次の記事を参照してください: ビルドのデプロイデプロイビルド構成

一般に、デプロイを設定するための設定手順は次のとおりです。

  1. ディスク上で利用可能なバイナリファイルに対してデプロイタスクを実行するビルドスクリプトを作成します。(たとえば、これには Ant または MSBuild を使用します。一般的なデプロイトランスポートにはデプロイヤーランナーを使用します)。ビルドおよびレポート作成ツールと統合するも参照してください。レシピを使用して、便利な UI でスクリプトを再利用できます。

  2. TeamCity でビルドスクリプトを実行して実際のデプロイを実行するビルド構成を作成します。デプロイを限定されたユーザーセットのみが表示または起動できるようにする場合は、ビルド構成を別の TeamCity プロジェクトに配置し、ユーザーがプロジェクトで適切な権限を持っていることを確認してください。

  3. このビルド構成では、デプロイする必要があるバイナリを生成するビルド構成にアーティファクトの依存関係を構成します。

  4. デプロイを自動的にトリガーする必要がある場合 (たとえば、最後に固定されたビルドの最後に成功したビルドをデプロイする場合)、デプロイするビルド構成で利用可能なトリガーの 1 つを構成するか、デプロイするバイナリを生成したビルドで「デプロイ」アクションを使用します。

  5. アーティファクト依存関係に加えてスナップショット依存関係を使用することを検討し、ビルドの概要を取得するにはビルドチェーンタブを確認してください。この場合、アーティファクト依存関係では「同じチェーンからビルド」オプションを使用する必要があります。

  6. デプロイをパラメーター化する必要がある場合 (たとえば、異なる実行で異なるターゲットマシンを指定する場合)、カスタムビルド実行ダイアログを使用してビルドスクリプトにパラメーターを渡します。カスタム実行ダイアログを使いやすくしたり、パスワードを処理したりするには、型付きパラメーターの使用を検討してください。

  7. デプロイ中のビルドが手動でトリガーされる場合は、(REST API リクエストまたはサービスメッセージの送信を介して) デプロイ中のビルドを固定およびタグ付けするコマンドをビルドスクリプトに追加することも検討してください。アーティファクトを生成したビルドのビルド番号を使用することもできます。

さらなる推奨事項

  • ターゲット環境ごとに別々のビルド構成をセットアップする

  • ビルドのバイナリ生成とビルド / タスクのデプロイ間のナビゲーションには、ビルドの依存関係タブを使用します。

  • 必要に応じて、「prompt」表示モードでパラメーターを使用して、ビルドの実行時に「確認(英語)」を求めます。

  • タイトルを変更(英語)ビルド構成の「実行」ボタン。デプロイ構成のボタンのタイトルは自動的に「Deploy」に変わります。

ビルドが依存している外部ツールを使用する

ビルドを実行するためにビルドエージェントにインストールするために特定の外部ツールを使用する必要がある場合は、次の選択肢があります。

  • TeamCity にツールをインストールして登録します。

    1. ビルドを実行するすべてのエージェントにツールをインストールしてください。これは手動でも自動スクリプトでも実行できます。単純なファイルディストリビューションについてはエージェントツールのインストールも見てください

    2. ツールのホームロケーションを値として使用して、プロパティを buildAgent.properties ファイルに追加します(またはシステムに環境変数を追加します)。

    3. ビルド構成でプロパティのエージェント要件を追加します。

    4. ビルドスクリプトでプロパティを使用します。

  • ツールをバージョン管理にチェックインし、相対パスを使用します。

  • ツールスクリプトを他の場所に配置するには、ビルドスクリプトに環境の準備段階を追加します。

  • アーティファクトとして必要なファイルを含む単一の「偽の」ビルドで別のビルド構成を作成してから、アーティファクト依存関係を使用してファイルをターゲットビルドに送信します。

ビルドおよびレポート作成ツールと統合する

TeamCity またはプラグイン(英語)でまだサポートされていないビルドツールまたはレポートを生成したりコードメトリクススを提供するツールがある場合、専用の統合がなくても TeamCity で使用できる可能性が高くなります。

関連する統合タスクは、ビルドの範囲内でデータを収集してから TeamCity に報告して、それらがビルド結果または他の方法で提示できるようにすることです。

データ収集

開始するための最も簡単な方法は、選択したツールを利用し、必要なデータをすべて収集するようにビルドスクリプトを変更することです。
コマンドラインコンソールからツールを実行できる場合は、コマンドラインランナーを使用して TeamCity でツールを実行できます。これにより、標準エラー出力に出力されるメッセージを検出できます。終了コードがゼロでない場合、またはビルド失敗条件によって標準エラーに出力がある場合は、ビルドは失敗としてマークされます。
ツールに、Ant、Maven、MSBuild などのサポートされているビルドスクリプトエンジンのランチャーがある場合は、TeamCity の対応するランナーを使用してツールを起動できます。外部ツールの実行方法に関する推奨事項については、ビルドが依存している外部ツールを使用するも参照してください。

TeamCity でツール専用の UI を使用できるようにするレシピを作成することも検討できます。

高度な統合のために、カスタム TeamCity プラグイン(英語)を Java で開発してツールの設定と実行を容易にすることができます。

TeamCity でデータを提示する

ビルドの進行状況はサービスメッセージを介して TeamCity に報告され、ビルドステータステキストも更新されます。

テストツールについては、まだサポートされていない場合は、ビルドからテスト関連のサービスメッセージを介して TeamCity にテストの進行状況を報告したり、ビルドでサポートされている XML レポートの 1 つを生成して、構成された XML レポート処理ビルド機能のサービスメッセージを介してインポートしたりすることができます。

一般的なレポートの結果を提示するには、ビルドスクリプトで HTML レポートを生成し、それをアーカイブにパックしてビルドアーティファクトとして公開するという方法が考えられます。次に、レポートタブを構成して、ビルドの結果のタブとして HTML レポートを表示します。

メトリクス値は、サービスメッセージを介して TeamCity 統計として公開され、カスタムチャートに表示されます。メトリクスに基づいてビルド失敗条件を構成することもできます。

ツールがインスペクションや重複などのコード属性情報をレポートする場合、TeamCity バンドルレポートを使用して結果を表示できます。ツール固有のレポートを TeamCity 固有のデータモデルに処理するには、カスタムプラグインが必要です。この例は、XML テスト報告プラグインと FXCop プラグインにあります ( バンドルされたオープンソースプラグイン(英語)ページのリンクを参照してください)。

カバレッジ内容のインポートは TeamCity になりますも参照してください。

高度な統合のためには、必要に応じてデータを保存し提示するためのカスタムプラグインが必要になります。プラグイン開発の詳細については TeamCity プラグインの開発(英語)を参照してください。

削除したばかりのプロジェクトを復元する

TeamCity は、削除されたプロジェクト設定ディレクトリ (プロジェクト ID に基づいて名前が付けられます) を <TeamCity Data Directory> /config/_trash ディレクトリに移動し、ディレクトリに "<internal ID>" 接尾辞を追加します。

プロジェクトを復元するには、_trash ディレクトリ内のプロジェクトディレクトリを見つけて、通常のプロジェクト設定ディレクトリに移動します。ディレクトリ名から ".projectN" 接尾辞を削除するときに、 <TeamCity Data Directory> /config/projects を使用します。
サーバーの実行中にこれを行うと、復元されたプロジェクトが自動的に取得されます。

TeamCity は、削除されたプロジェクト / ビルド構成のデータベースに保存されたビルド履歴およびその他のデータを削除時間から 5 日間保持することに注意してください。構成可能なタイムアウト (デフォルトでは 5 日間) が経過した後、関連するすべてのデータ (ビルドとテストの履歴、変更など) は、次のクリーンアップ時に削除されます。

config/_trash ディレクトリは自動的にクリーンアップされず、削除されたプロジェクトが不要であると確信できる場合は手動で空にすることができます。サーバーの再起動は不要です。

3 つのデフォルトエージェントを別のサーバーに転送する

これは不可能です。

各 TeamCity サーバー(プロフェッショナルおよびエンタープライズ)では、エージェントライセンスなしでサーバーにバインドされた 3 つ以上のエージェントを使用できます。プロフェッショナルサーバーの場合、デフォルトでは 3 つのエージェントがサーバーインスタンスにバインドされています。ユーザーはこれらのエージェントに対して料金を支払う必要はなく、ライセンスキーもありません。
エンタープライズサーバーの場合、エージェントの数はパッケージによって異なり、エージェントはサーバーのライセンスキーにバインドされます。

そのため、サーバーにバインドされているエージェントを別のサーバーに転送することはできません。

TeamCity サーバーに含まれているより多くのビルドエージェントが必要な場合は、サーバーにバインドされているライセンスに加えて、追加のビルドエージェントライセンスを購入してより多くのエージェントを接続することができます。

ライセンスの詳細については、こちらを参照してください。

「データディレクトリ(NNN)とデータベース(MMM)のデータ形式が一致しない」エラーから回復する

「データディレクトリ(NNN)とデータベース(MMM)のデータ形式が一致しません」というメッセージが表示された場合。TeamCity の起動エラー。データベースまたは TeamCity データディレクトリのいずれかが最近矛盾した状態に変更されたため、一緒に使用できないことを意味します。データベースとデータディレクトリの場所を再確認し、サーバーがデータの保存に使用した場所でない場合は変更します。

これらが正しい場合は、サーバーが別のデータベースまたはデータディレクトリでアップグレードされ、メインデータディレクトリとデータベースの一貫したアップグレード要件が満たされなかった可能性が高くなります。

状態から回復するには、アップグレード前に作成された一貫性のある状態のバックアップが必要です。そのバックアップを復元し、データディレクトリとデータベースに正しい場所が使用されていることを確認し、TeamCity アップグレードを実行する必要があります。

特定のエージェントでビルドをデバッグする

一部のエージェントでビルドが失敗した場合、このエージェントでそれをデバッグしてエージェント固有の問題を調査することが可能です。以下を実施:

  1. TeamCity Web UI のエージェントページに移動し、エージェントを選択します

  2. エージェントを無効にするをクリックして、ビルドグリッドから一時的に削除します。コメントを追加します (オプション)。一定期間後にエージェントを自動的に有効にするには、対応するボックスをオンにして時間を指定します。

  3. デバッグするビルドを選択

  4. カスタムランダイアログを開き、次のオプションを指定します。エージェントドロップダウンメニューで、無効になっているエージェントを選択します。b。通常のビルドとの交差を避けるために、個人ビルドとして実行オプションを選択することをお勧めします。

  5. 自動再有効化が設定されていない場合は、デバッグが完了したら、エージェントを手動で有効にします。

TeamCity 用の IntelliJ IDEA プラグインを介してエージェント上のテストのリモートデバッグを実行することもできます。

ビルドの一部をデバッグする (ビルドステップ)

複数のステップを含むビルドが特定のステップで失敗した場合、中断したステップをデバッグすることが可能です。以下を実施:

  1. ビルド設定に移動し、デバッグしたいものまでのビルドステップを無効にします。

  2. デバッグするビルドを選択

  3. カスタムランダイアログを開き、ビルドをキューの先頭に置くを選択して優先順位を付けます。

  4. デバッグが完了したら、ビルド手順を再度有効にします。

Windows Tray Notifier で複数の TeamCity サーバーを見る

TeamCity Tray Notifier は通常、ビルドを監視し、単一の TeamCity サーバーから通知を受け取るために使用されます。ただし、複数の TeamCity サーバーがあり、Windows Tray Notifier で同時に監視する場合は、/allowMultiple オプションを使用して、コマンドラインから各サーバーに対して個別に Tray Notifier インスタンスを起動する必要があります。

  • TeamCity トレイ通知機能のインストールディレクトリ(デフォルトでは C:\Program Files\JetBrains\TeamCity)から、次のコマンドを実行します。

JetBrains.TrayNotifier.exe /allowMultiple

オプションで、各 Tray Notifier インスタンスに対して、/server オプションを使用して接続するサーバーの URL を明示的に指定できます。それ以外の場合は、トレイ通知インスタンスごとに、ログアウトして UI を介してサーバーの URL を変更する必要があります。

JetBrains.TrayNotifier.exe /allowMultiple /server:http://myTeamCityServer

課題トラッカーの詳細も参照(英語)してください。

Git OAuth Flow のカスタムコールバック URL を設定する

TeamCity VCS プロバイダーへの OAuth のような接続はコールバック URL を使用します。ユーザーが TeamCity にリポジトリへのアクセスを許可すると、VCS プロバイダーはユーザーをこの URL にリダイレクトします。

通常、このコールバック URL は通常の TeamCity サーバー URL に基づいています。たとえば、https://foo.bar.gg:8111 でホストされているサーバーの場合、コールバック URL は https://foo.bar.gg:8111/oauth/githubapp/accessToken.html のようになります。まれに、リダイレクト URL に別のドメインを使用したい場合は、システム管理者が teamcity.oauth.redirectRootUrlOverride 内部プロパティを指定できます。

teamcity.oauth.redirectRootUrlOverride=https://teamcity.local.example.com/smth

個人ユーザーデータ処理

TeamCity 製品に関連して、JetBrains はオンプレミスの TeamCity インストールユーザーの個人データを収集しません。JetBrains との顧客の関係を管理する関連文書は、公式 Web サイトで入手できます: プライバシーポリシー購入条件TeamCity ライセンス契約

以下の注意事項は、TeamCity の使用方法が一般データ保護規則(GDPR)(EU)の 2016/679 規則にどのように準拠しているかを評価するときに役立ちます。これらのノートは最も基本的な質問に対処することを意図しており、あなたの特定の TeamCity インストールの評価へのインプットとして役立つことができます。

メモは、GDPR 施行日の時点で実際の TeamCity 2017.2.4 に基づいています。以前のバージョンには以下の注意事項と一致しない問題が含まれている可能性があるため、TeamCity インスタンスを少なくともこのバージョンに更新してください。

TeamCity とユーザーの個人データ

TeamCity が保存する最も重要なユーザ関連のデータは以下の通りです。

  • フルネームとユーザー名 - データベースに格納され、ユーザーのプロファイルに表示され、ユーザーが参照されるたびに表示されます。ユーザーがビルドを起動すると、これらもビルドのパラメーターに格納され、ビルドに渡されます。

  • ユーザーのメール - データベースに保存され、ユーザーのプロファイルに表示されます。通知の送信に使用されます。

  • サーバーにアクセスしているクライアントの IP アドレス - 内部ログに表示される可能性があります

TeamCity 内部ログは、構造化されていないユーザー関連情報を記録することもできます(たとえば、ユーザーが送信したり、HTTP リクエストとともにブラウザーから送信したり、LDAP などのユーザーソースから構成された設定に従って取得したりします)。

ユーザデータの削除

特定のユーザーの個人データを削除したい場合は、TeamCity でそのユーザーを削除するのが最善の方法です。このようにして、他のすべてのユーザー情報はもう格納されなくなりますが、ユーザーへのすべての参照は数値のユーザー ID を格納し続けます。監査レコードは、ユーザー削除後に内部数値ユーザー ID にメンションすることに注意してください。

ユーザーがビルドをトリガーした場合 (つまり、サーバー上にまだ存在するプロジェクトのいずれかで「ビルドの実行」権限を持っていた場合)、ユーザーのユーザー名とフルネームはビルドの teamcity.build.triggeredBy パラメーターにテキスト値として記録されます。ビルドの「環境」。これらを削除する必要がある場合は、関連するビルド (およびそれらにアーティファクトまたはスナップショットが依存するすべてのビルド) を削除するか、影響を受けるビルドのパラメーターを削除することができます (パラメーターは <TeamCity データディレクトリにあるアーカイブファイルに保存されます) >\system\artifacts***\.teamcity\properties ディレクトリ)。

ユーザーの削除とその他のデータのクリーニングが完了したら、検索インデックスをリセットして、削除されたユーザーのキャッシュされた可能性のあるデータを検索インデックスから削除してください。

ユーザー関連のデータを保持できる場所は他にもいくつかあります

ユーザーに「プロジェクトの編集」権限がある場合は、フルネーム / ユーザー名を次の場所に表示できます。

  • 一部の監査エントリ(2017.2.1 より前の TeamCity バージョンで保存) — TW-52215(英語)

  • 「保留中の永続タスクが完了するまで待機する」ビルドログ行の一部のビルドログ (2017.2.1 より前の TeamCity バージョンで保存) — TW-52872(英語)

  • UI で変更を行ったユーザーのバージョン付き設定ストア名を格納しているリポジトリにコメントをコミットします

VCS 関連データ内の VCS ユーザ名:

  • VCS での変更は UI に表示されるか、データベースに保存されます。

  • サーバーとエージェントのローカル .git リポジトリクローン

ユーザー名は、VCS ルート、issue tracker、データベースアクセスなど、さまざまな統合で設定されたアクセス資格情報にも表示されることがあります。(これらは TeamCity データディレクトリの設定ファイルと監査差分ファイルに保存され、VCS ルートの現在および以前のバージョンのユーザー名もデータベースに保存されます。)

ユーザーの詳細が TeamCity によって保存されていないことを確認するには、TeamCity のバッキングストレージにデータが保存されていないことを確認することをお勧めします。データベース、データディレクトリ、TeamCity ホームディレクトリ (ログ、メモリダンプは定期的に保存されます)。「bin」ディレクトリ)。

ユーザー使用許諾契約

TeamCity インスタンスを使用する前にユーザーに特別な同意を受け入れてもらいたい場合は、この目的のために JetBrains によって開発された専用プラグイン(英語)をインストールできます。詳細については、プラグインのドキュメントを参照してください。

暗号化

TeamCity で使用されるデータを暗号化する場合、TeamCity は専用の機能を提供しないため、汎用の非 TeamCity 固有ツールを使用することをお勧めします。TeamCity は、データを SQL データベースとファイルシステムに保存します。データベースを構成して、データを暗号化形式で保存し、データベースへの安全な JDBC バックアップ接続 ( database.properties で構成) を使用できます。
また、OS レベルでディスクストレージの暗号化を構成することもできます。

ログとデバッグデータ

内部 TeamCity ログを限られた日数以上保存しないようにするには、内部ログを設定してログファイルを毎日ローテーションし、保存するファイルの数を制限することができます。TeamCity エージェントは、通常、ユーザー関連のデータを構造的に操作することはありませんが、エージェント上でログが定期的にローテーションされるようにする必要がある場合は、エージェントのログを同じ方法で設定する必要があります。

1 日あたりのローテーションは、必要なすべての <appender name="..." class="jetbrains.buildServer.util.TCRollingFileAppender"> アペンダー内に <param name="rotateOnDayChange" value="true"/> 行を追加することで設定できます。この変更は、デフォルトの conf\teamcity-server-log4j.xml と、<TeamCity Data Directory>\config\_logging に保存されているログプリセットに対して行う必要があります。

TeamCity は、ユーザー関連データを非構造化形式で記録できるスレッドダンプなどの診断データも保存できます。 <TeamCity Home> \logs ディレクトリの内容を定期的に確認し、古いファイルが保存されていないことを確認することをお勧めします。また、デバッグログの収集などのカスタマイズセッションをログに記録した後は、余分なログを削除する必要があります。logs\catalina.out ファイルが自動的にローテーションされないという既知の問題(英語)があります。ファイルを定期的にローテーションするための自動手順を確立することをお勧めします。

カスタム

これらのノートは、最も一般的な文書化された設定でバンドルされた TeamCity 機能性だけを扱います。構成されたビルドスクリプト、インストールされたプラグイン、API を介して TeamCity と通信する外部システムなどのカスタマイズを考慮して、特定の TeamCity インストールを評価する必要があります。

2026 年 2 月 17 日

関連ページ:

TeamCity ホームディレクトリ

TeamCity ホームディレクトリまたは TeamCity インストールディレクトリは、TeamCity がインストールされたときに TeamCity サーバーアプリケーションファイルとライブラリが解凍されたディレクトリです。TeamCity ホームディレクトリの場所は、TeamCity サーバーをインストールするときに定義されます。Windows インストールパッケージによって提案される既定のディレクトリはですが、TeamCity は任意のディレクトリにインストールできます。重要なファイルとディ...

TeamCity サーバーを起動

サーバーの起動:TeamCity がまたはディストリビューションを使用してインストールされている場合、ディレクトリにあるスクリプトによって起動および停止できます。スクリプトは、(同じコンソールで実行)、(新しい分離プロセスを開始してスクリプトを終了)、およびコマンドを受け入れます。TeamCity を再起動するには、を送信し、停止したらを送信します。(評価のみ)TeamCity サーバーと 1 つのデフォルトエージェントを同時に起動 / 停止するには、スクリプトを使用、例: を使用して、サーバー...

TeamCity データディレクトリ

TeamCity データディレクトリは、TeamCity サーバーが構成、ビルド結果、現在の操作ファイルを保存するために使用するファイルシステム上のディレクトリです。このディレクトリは、すべての構成設定の 1 次ストレージであり、TeamCity のインストールに不可欠なデータを保持します。ビルド履歴、ユーザーとそのデータ、その他のデータはデータベースに保存されます。ディレクトリとデータベースに保存されるデータの説明については、バックアップに関する注意事項を参照してください。このドキュメントや他...

ロールと権限の管理

TeamCity のユーザーアクセスレベルは、ユーザーに異なるロールを割り当てて、それぞれの権限を付与することによって処理されます。権限とは、ビルドを実行したり、ビルド構成設定を変更したりするなど、特定の操作を実行するための承認です。ロールとは、1 つまたはすべてのプロジェクトでユーザーに付与できる権限のセットであり、プロジェクトや UI のさまざまな機能へのアクセスを制御します。認証モード:TeamCity 認証は、シンプルモードと per-project モードの 2 つのモードをサポートしま...

ユーザープロファイルの構成

ユーザープロファイル設定にアクセスするには、ヘッダーのアバターをクリックし、ドロップダウンメニューからプロファイルを選択します。パスワードを変更する:組み込み認証が設定されている場合、TeamCity サーバーはユーザー認証用のパスワードを保持します。プロファイル | 一般 | 組み込み認証でパスワードを変更できます。既存のパスワードと新しいパスワードを入力し、変更を保存をクリックします。パスワードは、組み込みの認証でのみ変更できます。これらのフィールドが表示されない場合は、TeamCity...

高可用性のためのマルチノードセットアップ

TeamCity サーバーは、高可用性と柔軟な負荷分散のために複数のノード (またはサーバー) を使用するように構成できます。TeamCity ノードのクラスターをセットアップすることが可能です。各ノードは、ビルドからのデータの処理や VCS リポジトリからの変更の収集など、さまざまなタスクを担当します。または、すべての作業を行うメインノードを 1 つと、読み取り専用インターフェースを提供するセカンダリノードを 1 つ保持します。メインノードがダウンした場合、最小限のダウンタイムですべてのデータ...