サーバー管理者ガイド
このセクションでは、 サーバー管理 に焦点を当てます: TeamCity サーバーとエージェントのインストール、マルチノードセットアップの構成、ユーザー権限の設定など。^
主な概念
TeamCity ビルドシステムは、 サーバー と ビルドエージェント で構成されています。 次のセクションでは、これらの各コンポーネントに関する重要な情報について説明します。
ビルドサーバー
TeamCity サーバー ビルドもテストも実行しません: サーバーの役割は、接続されているすべてのビルドエージェントを監視し、互換性要件に基づいて キューに入っているビルドをエージェントに割り当て、結果を報告することです。
ビルド結果に関するすべての情報 (ビルド履歴と、アーティファクトとビルドログを除くすべてのビルド関連データ)、VCS の変更、エージェント、ビルドキュー、ユーザーアカウント、ユーザー権限などは、別のマシンでホストできるデータベースに保存されます。
TeamCity サーバーは 1 台のマシンを占有することも、安定性とパフォーマンスを向上させるために複数の分散 ノードを含めることもできます。
エージェントと同様に、サーバーは永続的にインストールされたソフトウェアではなく、 Docker コンテナー(英語)として実行できます。
ビルドエージェント
エージェントは、通常、ソースコードをチェックアウトし、他のビルドのアーティファクトをダウンロードし、ビルドプロセスを実行するソフトウェアです。 TeamCity サーバーとは別にインストールおよび構成されます。
エージェントは物理マシンと クラウドホスト型仮想マシンの両方にインストールできます。
エージェントは、 互換性のある任意のビルド構成のビルドを実行できます。 各エージェントは、アーキテクチャ、オペレーティングシステム、インストールされているツールなど、固有の環境を持つことができます。 これらのプロパティは、エージェントが実行できるビルドを定義します。
エージェントは一度に 1 つのビルドを実行できます。 基本的に、エージェントの数によって、並列ビルドの数とビルドプロセスが実行される環境の数が制限されます。
エージェントのスムーズな動作を確保するには、実行可能ファイルまたはアーカイブからインストールされたエージェントのコアソフトウェアとツールを定期的に更新する必要があります。 たとえば、TeamCity サーバーを新しいバージョンにアップグレードした後、既存の VM イメージから起動されたすべてのクラウドエージェントは更新にしばらく時間がかかります (これは自動的に行われますが、キューに入っているビルドを開始できるタイミングが遅れます)。 エージェントが常に最新のソフトウェアを実行するようにするには、代わりに Docker コンテナーとして実行します。
ビルドは Docker または Podman コンテナー内で実行できるため、エージェントマシンの OS だけではエージェントとプロジェクトの互換性が制限されることはありません。 つまり、Windows エージェントで Linux 固有のタスクを実行でき、その逆も可能です。
データベース
TeamCity は、ビルド履歴、ユーザー、ビルド結果、一部のランタイムデータを組み込みの SQL データベースに保存します。
現在使用されているデータベースは、 管理 | グローバル設定 ページに表示されます。 また、サーバーの起動時に teamcity-サーバー.ログ にも表示されます。 HSQL* は、内部データベースが使用中であることを意味します。 安定性とセキュリティのために、デフォルトの HSQL から別のマシンにある外部データベースに移行することをお勧めします。
詳細についてはこのセクションを参照してください: 外部データベースのセットアップ
マルチノード設定
TeamCity サーバーは、高可用性と柔軟な負荷分散のために複数のノード (またはサーバー) を使用するように構成できます。 TeamCity ノードのクラスターを設定し、各ノードがビルドからのデータ処理や VCS リポジトリからの変更収集など、異なるタスクを担当するようにできます。 または、すべての作業を行うメインノードと、読み取り専用インターフェースを提供するセカンダリノードを維持することもできます。 メインノードがダウンした場合、すべてのデータ処理を最小限のダウンタイムでセカンダリノードに切り替えることができます。
詳細についてはこの記事を参照してください: 高可用性のためのマルチノードセットアップ
サーバーとエージェントの健全性
TeamCity は、詳細なサーバーログ、ヘルスレポート、リソースモニターなど、サーバーの監視とトラブルシューティングを行うためのさまざまな診断ツールとインジケーターを提供します。 これらのツールを使用すると、問題を簡単に特定して調査し、必要に応じてサーバー上の 問題を報告できます。
詳細については、次のトピックを参照してください: TeamCity の監視と診断、 ビルドエージェントの構成とメンテナンス
セキュリティ
CI/CD サーバーは、現代のソフトウェア開発のバックボーンであり、内部プロセス、ユーザー認証情報、AWS ビルドエージェント、Google Cloud アーティファクトストレージ、HashiCorp Vault などの外部サービスとの統合の鍵を保持しています。 セキュリティが 1 つでも違反すると重要なインフラストラクチャが危険にさらされる可能性があるため、堅牢な保護が不可欠です。 TeamCity 保護の基本レイヤーについて詳しくは、次の記事を参照してください: