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