TeamCity の設定とメンテナンス
サーバー構成を変更するには、管理 | グローバル設定に移動します。次の設定ブロックを使用できます。
TeamCity の設定
設定 | 説明 |
|---|---|
データベース | 実行中の TeamCity サーバーによって使用されるデータベース。 |
データディレクトリ | ディレクトリを参照できる \< TeamCity データディレクトリ \> パス。 |
アーティファクトディレクトリ | TeamCity サーバーがビルドアーティファクト、ビルドログ、その他のビルドデータを保存するために使用するルートディレクトリのリスト。デフォルトの場所は リストは、改行で区切られたパスのリストを指定することで変更できます。絶対パスと相対パス(TeamCity データディレクトリに対して)がサポートされています。指定されたすべてのディレクトリは同じ構造を使用します。 ビルドアーティファクトを探すときは、指定された場所でビルドに対応するディレクトリを検索します。検索はルートディレクトリが指定された順に行われます。最初に見つかったビルドアーティファクトディレクトリは、このビルドのアーティファクトのソースとして使用されます。 新しく開始したビルドのアーティファクトは、リストの最初のディレクトリに置かれます。 |
キャッシュディレクトリ | (VCS リポジトリの内容、検索インデックス、その他の)TeamCity 内部キャッシュを含むディレクトリ。このディレクトリからファイルを手動で削除して、キャッシュをクリアできます。 |
サーバー URL | 実行中の TeamCity サーバーの構成可能な URL。 |
ビルド設定
設定 | 説明 |
|---|---|
ビルドアーティファクトファイルの最大サイズ | 最大サイズ(バイト単位)。KB、MB、GB、TB の接尾辞が許可されます。 |
ビルドごとのアーティファクトの最大数 | ビルドごとに公開されるアーティファクトの数を制限します。 |
デフォルトのビルド実行タイムアウト | ビルドの最大時間。ビルド失敗条件を定義するときに上書きできます。 |
バージョン管理設定
設定 | 説明 |
|---|---|
デフォルトの VCS 変更チェック間隔 | デフォルトでは 60 秒に設定されています。TeamCity が VCS リポジトリをポーリングして VCS の変更を確認する頻度を指定します。VCS ルートを構成するときに上書きできます。 さらに、サーバー上のすべての VCS ルートの最小ポーリング間隔として、VCS 変更チェックの間隔を強制できます。これにより、プロジェクト管理者はデフォルトよりも大きい間隔のみを設定できます。これにより、ポーリング要求の頻度が制限され、サーバーの負荷が軽減されます。 |
デフォルトの VCS トリガーの待機期間 | デフォルトでは 60 秒に設定されています。最後の VCS 変更が検出されてからビルドがキューに追加されるまでの期間 (秒単位) を TeamCity が維持する期間を指定します。VCS トリガーを構成するときに上書きできます。 |
暗号化設定
TeamCity は、内部スクランブルアルゴリズムを使用して、設定ファイルに保存されているすべての機密データ(シークレット値、SSH キー、ライセンスプロダクトキーなど)を保護します。暗号化設定セクションでは、代わりに使用するカスタム暗号化キーを定義できます。カスタム暗号化キーは、TeamCity UI から設定するか、環境変数からインポート(推奨)できます。
- TeamCity UI 内
カスタム暗号化キーフィールドに Base64 でエンコードされた 128 ビットのキーを入力してください。対応するアクションをクリックすると、TeamCity が有効なキーを生成します。
TeamCity UI で指定されたキーは、
TeamCity Data Directory/config/encryption-config.xmlファイルに保存されます。新しい暗号化キーを生成または入力すると、TeamCity は新しく暗号化されたオブジェクトに対してこのキーを使用するようになります。以前のキーは既存のオブジェクトに対して引き続き使用され、
encryption-config.xmlファイルに保存されます。<?xml version="1.0" encoding="UTF-8"?> <encryption-settings> <key value="oldKey1" /> <key value="oldKey2" /> ... <key value="currentKey" default="true" /> </encryption-settings>- 環境変数からのインポート
TeamCity サーバーは起動時に空でない
TEAMCITY_ENCRYPTION_KEYS環境変数を検出すると、この変数から暗号化キーをインポートし、UI のカスタム暗号化キーフィールドをロックします。これは、暗号化キーが
encryption-config.xmlファイルに保存されないため、より安全なオプションであり、Data directory/configフォルダーはリモート VCS リポジトリに保存するのに適しています。TEAMCITY_ENCRYPTION_KEYS変数には、コロンを区切り文字として現在使用されている暗号化キーと以前の暗号化キーが格納されます。現在のキーが最初のキーになります。currentKey:oldKey1:oldKey2:oldKey3...キーを生成するオプションは、生成されたキーを
TEAMCITY_ENCRYPTION_KEYS変数に自動的に書き込まないため、手動で書き込む必要があります。
モードはいつでも切り替えることができます。サーバーが encryption-config.xml ファイルにキーを保存している場合は、以下のように変数にエクスポートしてください。
同様に、サーバーが TEAMCITY_ENCRYPTION_KEYS 変数を使用している場合は、そのキー値を個別の <key value="key_value"/> エントリとして encryption-config.xml ファイルに移動し、現在使用されているキーに default="true" を追加します。
アクティブな暗号化キーを切り替えても、既存の暗号化された値は自動的に再暗号化されません。再暗号化するには、グローバルサーバー設定で現在のキーで再暗号化をクリックしてください。この処理は、暗号化されたエンティティの数によっては数時間かかる場合があります。再暗号化中にサーバーが再起動された場合、TeamCity はオンラインに戻ると、最後に処理した項目から自動的に処理を続行します。

暗号化キーが見つかりません
TeamCity は、製品のライセンスキーから個々のプロジェクトで使用される SSH キーまで、様々な機密データを暗号化します。暗号化キーを紛失した場合、TeamCity は関連データを復号できなくなり、それらの値に永久にアクセスできなくなります。
これを防ぐため、TeamCity はすべての有効な暗号化鍵を追跡し、不足している鍵があれば検出します。鍵のハッシュコードは TeamCity Data Directory の /config/encryption-config.xml ファイルに保存されます。サーバーの起動時に、TeamCity は利用可能な鍵のハッシュとこのファイルに保存されているハッシュを比較します。一致しない場合は、起動エラー画面が表示され、サーバーの読み込みがブロックされます。

この問題を解決してサーバーを起動するには:
(推奨) 不足している暗号化キーを
encryption-config.xmlファイルまたはTEAMCITY_ENCRYPTION_KEYS環境変数のいずれかで復元します。または、
encryption-config.xmlからencryptionKeysHashes属性を削除して、既知の鍵のリストをクリアしてください。ただし、不足している鍵で暗号化されたデータは利用できなくなり、ユーザーは関連する値(SSH 鍵やパラメーターベースのパスワードなど)を再入力する必要があります。
特記事項
TeamCity は設定ファイルのみを暗号化します。その他の機密データ(データベースの資格情報など)は別途保護する必要があります。
暗号化キーが漏洩した場合、TeamCity 暗号化キーを変更するだけでは不十分な場合があります。攻撃者は侵害されたキーを使用して機密データを復号できる可能性があるためです。暗号化キーの更新に加えて、すべての認証情報をローテーションすることをお勧めします。
アーティファクトのドメイン分離
設定 | 説明 |
|---|---|
分離保護を有効にする | 有効にすると、ビルドアーティファクトは別のドメインから読み込まれ、潜在的な悪意のあるコンテンツは、このコンテンツを表示しているユーザーに代わって TeamCity サーバーと通信できなくなります。これにより、アーティファクトやその他の関連する脆弱性を介した XSS 攻撃のリスクが軽減されます。 このモードでは、TeamCity 専用のドメインを構成する必要があることに注意してください。一部のビルド結果 (カスタムレポートなど) を表示するためにアーティファクトを引き続き使用するには、以下のこのドメインの URL を指定する必要があります。 |
アーティファクトの URL | ビルドアーティファクトを提供する URL を指定します。アーティファクト分離用の URL と TeamCity サーバーには異なるホスト名が必要であることに注意してください。両方のリソースに同じホスト名の異なるポートを使用すると、ビルドの失敗や TeamCity へのサインインの問題など、さまざまな問題が発生する可能性があります。 何らかのアーティファクトのコンテンツに対するリクエストを受信すると、TeamCity は、このアーティファクトの URL をベースとして使用する一時的な URL にブラウザーをリダイレクトします。一時的な URL は、アーティファクトへの不正アクセスを防ぐために、一定時間が経過すると期限切れになります。期限切れの URL にアクセスすると、通常の認証が実行され、新しい URL が生成されます。 ローカルホスト経由でのみアクセス可能な個人の TeamCity インストールの場合、 組織で使用される TeamCity サーバーの場合、新しい DNS 名、 注: これはアーティファクトのみを提供するために存在する特別な URL であるため、ユーザーはそれを介して TeamCity インターフェースにサインインすることはできません。 |
関連ページ:
ロールと権限の管理
TeamCity のユーザーアクセスレベルは、ユーザーに異なるロールを割り当てて、それぞれの権限を付与することによって処理されます。権限とは、ビルドを実行したり、ビルド構成設定を変更したりするなど、特定の操作を実行するための承認です。ロールとは、1 つまたはすべてのプロジェクトでユーザーに付与できる権限のセットであり、プロジェクトや UI のさまざまな機能へのアクセスを制御します。認証モード:TeamCity 認証は、シンプルモードと per-project モードの 2 つのモードをサポートしま...
外部データベースを設定する
TeamCity は、ビルド履歴、ユーザー、ビルド結果、一部のランタイムデータを組み込みの SQL データベースに保存します。現在使用されているデータベースは、管理 | グローバル設定ページに表示されます。また、サーバーの起動時ににも表示されます。は、内部データベースが使用中であることを意味します。安定性とセキュリティのために、デフォルトの HSQL から別のマシンにある外部データベースに移行することをお勧めします。デフォルトの内部データベース:最初の TeamCity 実行では、デフォルトで...
TeamCity データディレクトリ
TeamCity データディレクトリは、TeamCity サーバーが構成、ビルド結果、現在の操作ファイルを保存するために使用するファイルシステム上のディレクトリです。このディレクトリは、すべての構成設定の 1 次ストレージであり、TeamCity のインストールに不可欠なデータを保持します。ビルド履歴、ユーザーとそのデータ、その他のデータはデータベースに保存されます。ディレクトリとデータベースに保存されるデータの説明については、バックアップに関する注意事項を参照してください。このドキュメントや他...
アーティファクトストレージの構成
プロジェクト設定 | アーティファクトストレージタブには、このプロジェクトで構成されたアーティファクトストレージと、親から継承されたストレージが表示されます。デフォルトでは、組み込み TeamCity アーティファクトストレージが表示され、アクティブとしてマークされています。対応するリンクを使用して別のストレージを有効化することができます。組み込みアーティファクトストレージ:TeamCity は、ビルドによって生成されたアーティファクトを、TeamCity サーバーがアクセスできるファイルシステ...
VCS ルートの設定
VCS ルートは、TeamCity ←→ VCS リポジトリ通信の基礎です。この不可欠な要素は、リポジトリのチェックアウト、コードソースのタグ付け、ビルドステータスの VCS への返信など、さまざまな操作を実行するために必要な VCS プロバイダーへの接続を定義します。VCS ルートには次の情報が保存されます。TeamCity がリモートファイルをプルおよびプッシュするために使用する URL を取得してプッシュします。ブランチ情報: TeamCity が追跡する必要があるリポジトリブランチのリスト...
VCS トリガーの設定
VCS トリガーは、TeamCity が構成済みの VCS ルートの新しい変更を検出するたびに新しいビルドを自動的に開始し、保留中の変更の変更を表示します。複数の VCS トリガーをビルド構成に追加できます。デフォルト設定の新しい VCS トリガーは、ビルド構成に保留中の変更があるとビルドをトリガーします。バージョン管理は、VCS コミットフック(設定されている場合)を尊重する VCS ルートの変更チェック間隔に従ってポーリングされます。チェックアウトルールに一致する変更のみが保留中として表示され...