TeamCity の構成とメンテナンス
サーバー構成を変更するには、 管理 | グローバル設定 に移動します。 次の設定ブロックを使用できます。
TeamCity の構成
設定 | 説明 |
|---|---|
データベース | 実行中の TeamCity サーバーで使用される データベース。 |
データディレクトリ | ディレクトリを閲覧できる \< TeamCity データディレクトリ \> パス。 |
アーティファクトディレクトリ | TeamCity サーバーが ビルドアーティファクト 、ビルドログ、その他のビルドデータを保存するために使用するルートディレクトリのリスト。 デフォルトの場所は リストは、改行で区切られたパスのリストを指定することで変更できます。 絶対パスと相対パス (TeamCity データディレクトリに対する) がサポートされています。 指定されたすべてのディレクトリは同じ 構造を使用します。 ビルドアーティファクトを探すときは、指定された場所でビルドに対応するディレクトリを検索します。 検索はルートディレクトリが指定された順に行われます。 最初に見つかったビルドアーティファクトディレクトリは、このビルドのアーティファクトのソースとして使用されます。 新しく開始したビルドのアーティファクトは、リストの最初のディレクトリに置かれます。 |
キャッシュディレクトリ | TeamCity 内部キャッシング (VCS リポジトリの内容、検索インデックス、その他) を含むディレクトリ。 このディレクトリからファイルを手動で削除して、 キャッシングをクリアできます。 |
サーバー URL | 実行中の TeamCity サーバーの 構成可能な URL。 |
ビルド設定
設定 | 説明 |
|---|---|
ビルドアーティファクトファイルの最大サイズ | バイト単位の最大サイズ。 KB、MB、GB、または TB の接尾辞を使用できます。 |
ビルドごとのアーティファクトの最大数 | ビルドごとに公開されるアーティファクトの数を制限します。 |
デフォルトのビルド実行タイムアウト | ビルドの最大時間。 ビルド失敗条件を定義するときに上書きできます。 |
バージョン管理設定
設定 | 説明 |
|---|---|
デフォルトの VCS 変更チェック間隔 | デフォルトでは 60 秒に設定されています。 TeamCity が VCS の変更について VCS リポジトリをポーリングする頻度を指定します。 VCS ルートを構成するときに上書きできます。 さらに、サーバー上のすべての VCS ルートの最小ポーリング間隔として、VCS 変更チェックの間隔を強制できます。 これにより、プロジェクト管理者はデフォルトよりも大きい間隔のみを設定できます。 これにより、ポーリング要求の頻度が制限され、サーバーの負荷が軽減されます。 |
デフォルトの VCS トリガーの待機期間 | デフォルトでは 60 秒に設定されています。 最後の VCS 変更の検出からビルドがキューに追加されるまでに TeamCity が設ける期間 (秒単位) を指定します。 VCS トリガーを構成するときに上書きできます。 |
暗号化設定
TeamCity は、各 TeamCity インストールに固有のデフォルトの暗号化キーを使用して、構成ファイルに保存されているすべての機密データ(シークレット値、 SSH キー 、ライセンスプロダクトキーなど)を保護します。 暗号化設定 セクションでは、代わりに使用するカスタム暗号化キーを定義できます。 カスタム暗号化鍵は、TeamCity UI から設定するか、環境変数からインポート(推奨)できます。
- TeamCity UI で
カスタム暗号化鍵 フィールドに Base64 でエンコードされた 128 ビットのキーを入力してください。 対応するアクションをクリックすると、TeamCity が有効な鍵を生成できます。
TeamCity UI で指定された鍵は、
TeamCity データディレクトリ/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ファイルに保存されないため、より安全なオプションであり、データディレクトリ/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 データディレクトリ の /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 が生成されます。 localhost 経由でのみアクセス可能な個人用 TeamCity インストールの場合は、 組織で使用される TeamCity サーバーの場合、新しい DNS のお名前、または 注: これはアーティファクトの提供専用の特別な URL であるため、ユーザーはこの URL 経由で TeamCity インターフェースにサインインできません。 |