> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/jp/secrets-manager/integrations/teamcity.md).

# TeamCity

![](/files/7vD1zqeU3VNzo4CU7GwM)

## 概説 <a href="#about" id="about"></a>

TeamCityは汎用CI/CDソフトウェアプラットフォームで、柔軟なワークフロー、コラボレーション、開発慣行を可能にします。DevOpsプロセス内で継続的インテグレーション、継続的デリバリー、継続的デプロイメントを実現するソリューションです。

本プラグインにより、TeamCityサーバー（バージョン2018.1以降）をKeeperシークレットマネージャーと統合し、TeamCityでのシークレット管理をより簡単かつ安全に行えます。

## 機能 <a href="#features" id="features"></a>

* TeamCityビルドでKeeperボルトのシークレットを利用
* KeeperシークレットマネージャープラグインをTeamCityの**接続**としてインストール

## 前提条件 <a href="#prerequisites" id="prerequisites"></a>

* Keeperシークレットマネージャーへのアクセス（[クイックスタートガイド](/keeperpam/jp/secrets-manager/quick-start-guide.md)をご参照ください）
  * Keeperのサブスクリプションでシークレットマネージャーアドオンが有効になっていること
  * シークレットマネージャーポリシーが有効なロールに所属していること
* シークレットが共有されているKeeper[シークレットマネージャーアプリケーション](/keeperpam/jp/secrets-manager/about/terminology.md#application)
  * アプリケーションの作成手順については、[クイックスタートガイド](https://docs.keeper.io/keeperpam/jp/secrets-manager/integrations/pages/-MeRAVfQmDBzKQBC0f_c#2.-create-an-application)をご参照ください
* 初期化済みのKeeper[シークレットマネージャー構成](/keeperpam/jp/secrets-manager/about/secrets-manager-configuration.md)
  * TeamCityプラグインではBase64形式の構成を使用

## インストール <a href="#installation" id="installation"></a>

### JetBrainsプラグインリポジトリからインストール <a href="#installing-plugin-from-jetbrains-plugins-repository" id="installing-plugin-from-jetbrains-plugins-repository"></a>

* TeamCityの\*\*\[Administration | Plugins]**に移動し、**\[Browse plugins repository]\*\*をクリックします。
* **Keeper Secrets Manager**プラグインを見つけ、**\[Get]** をクリックし、**\[Install to http\[s]://\<teamcityUrl>]** を選択します。
* \*\*\[Install]\*\*をクリックしてインストールを確定します。
* インストール後にプラグインを有効にするには、プラグインのコンテキストメニューから **\[Load]** を選択します。

### Web UI経由でプラグインをインストール <a href="#installingpluginviawebui" id="installingpluginviawebui"></a>

* [GitHub](https://github.com/Keeper-Security/secrets-manager-teamcity/releases/latest)からTeamCity KSMプラグインZIPファイルの最新版をダウンロードします。
* **\[Administration | Plugins]** ページに移動し、対応するリンクからローカルマシンのプラグインZIPアーカイブをアップロードします。

### プラグインを手動でインストール <a href="#installingpluginmanually" id="installingpluginmanually"></a>

* ZIPプラグインパッケージを`<`[`TeamCity Data Directory`](https://www.jetbrains.com/help/teamcity/teamcity-data-directory.html) `>/plugins` ディレクトリにコピーします。ディレクトリ内に以前のバージョンのプラグインがある場合（パッケージ名が異なる場合があります）は削除してください。

### プラグインを有効にする <a href="#enablingplugin" id="enablingplugin"></a>

* インストール後にプラグインを有効にするには、プラグインのコンテキストメニューから\*\*\[Load]\*\*を選択します。サーバーを再起動せずにプラグインが有効になります。

### Web UI経由でプラグインをアンインストール <a href="#uninstallingpluginviawebui" id="uninstallingpluginviawebui"></a>

* **\[Administration | Plugins]** に移動し、リストから外部プラグインを見つけ、横の矢印アイコンをクリックして\*\*\[Delete]\*\*を選択します。
* プラグインが削除されると、ページにサーバーを再起動するオプションが表示されます。クリックし、**\[Administration | Plugins]** のリストにプラグインのバージョンが表示されなくなったことを確認します。

### プラグインを手動でアンインストール <a href="#uninstallingpluginmanually" id="uninstallingpluginmanually"></a>

* `<`[`TeamCity Data Directory`](https://www.jetbrains.com/help/teamcity/teamcity-data-directory.html)`>/plugins`ディレクトリからプラグインパッケージを削除し、TeamCityサーバーを再起動します。

## 設定 <a href="#configuring-discovery-credentials" id="configuring-discovery-credentials"></a>

### 接続の設定 <a href="#configuring-connections" id="configuring-connections"></a>

接続を作成すると、現在のプロジェクトにネストされたすべてのサブプロジェクトで利用できます。ルートプロジェクトに接続を追加すると、サーバー全体で利用可能になります。

接続を追加するには、対象プロジェクトの設定に移動し、**\[Connections]** ページを開いて **\[Add Connection]** をクリックします。接続タイプ **\[Keeper Vault]** を選択し、他の接続と区別する **\[Display name]** を設定して、以下の手順で構成します。

![](/files/2bSDv3DBYH4Rw7BoPpI6)

* **\[Project Administration | Connections]** で **\[Add Connection]** をクリックします。
* 接続タイプとして **\[Keeper Vault]** を選択します。
* トークンを指定します。有効なKSM構成を貼り付けます（[前提条件](#prerequisites)をご参照ください）。
* 接続を保存します。

![](/files/cJKsxuCwn39Zotp6m4ja)

### TeamCityビルドでシークレットを使用 <a href="#using-secrets-in-teamcity-builds" id="using-secrets-in-teamcity-builds"></a>

TeamCityサーバーからKeeperボルトのシークレットを利用するには、以下が必要です。

* Keeperボルトにシークレットを作成し、対応するKSMアプリケーションに共有する
* [シークレットマネージャー表記法URI](/keeperpam/jp/secrets-manager/about/keeper-notation.md)でシークレットを解決するTeamCityパラメータを構成する

### ビルド構成設定でビルドパラメータを使用 <a href="#usingbuildparametersinbuildconfigurationsettings" id="usingbuildparametersinbuildconfigurationsettings"></a>

ほとんどのビルド構成設定では、プレーンテキスト値の代わりにビルドパラメータへの参照を使用できます。ビルド開始前に、利用可能なパラメータですべての参照が解決されます。解決できない参照はそのまま残り、ビルドログに警告が表示されます。ビルドパラメータを参照するには、名前をパーセント文字で囲みます（例: `%env.KsmSecret1%`）。

**\[Parameters]** タブでは、パラメータ、プロパティ、変数の追加、編集、削除、または事前定義値の再定義が行えます。

{% hint style="warning" %}
パーセント文字で囲まれたテキストは、TeamCityによってパラメータへの参照として解釈されます。ビルド構成でパラメータが見つからない場合、この参照は暗黙のエージェント要件となり、当該パラメータが定義されたエージェントでのみビルドを実行できます。エージェントで定義された値がビルドで使用されます。

TeamCityにパーセント文字内のテキストをパラメータ参照として扱わせない場合は、パーセント文字を2つ使用します。パラメータ参照が利用できる値では、`%%` はビルドに値を渡す前に `%` に置き換えられます。たとえば、`%Y%m%d%H%M%S` をビルドに渡す場合は、`%%Y%%m%%d%%H%%M%%S` に変更します。
{% endhint %}

### ワークフローの例 <a href="#exampleworkflow" id="exampleworkflow"></a>

ビルド構成レベルでビルドパラメータを定義し、ビルドステップで使用します。

1. **\[Build Configuration Settings | Parameters]** に移動します。
2. **\[Add new parameter]** をクリックします。
3. パラメータの名前と値を入力します。**\[Kind]** を **\[Environment variable (env.)]** に変更します。
   * Name: `username`
   * Value: `%keeper://UserRecord1/fields/login%`

![](/files/bPMkDsMkWWMVSjYmEgJ7)

4. パラメータを保存します。
5. **\[Build Steps]** に移動します。
6. **\[Add build step]** をクリックします。
7. [Command Line](https://www.jetbrains.com/help/teamcity/command-line.html)ランナータイプを選択します。
8. **\[Custom script]** フィールドに以下のコマンドを入力します。

   `echo UserName %env.username%`

   ビルド時、このコマンドは以下のように解決されます（ログでは実際の値はマスクされますが、コマンドでは使用されます）。

   ```
   echo UserName *****
   ```
9. ビルドステップを保存し、新しいビルドを実行します。

{% hint style="warning" %}
プラグインでは、ビルドパラメータや環境変数などで、Keeper表記法の接頭辞 `keeper://NotationURI` とTeamCity形式の接頭辞 `keeper:NotationURI` の両方を使用できます。以下の例をご参照ください。
{% endhint %}

**パラメータ例:**

* 環境変数 `env.User`: `keeper:abcdABCDabcdABCDuvwxyz/field/login`
* 環境変数 `env.Secret`: `keeper://MyRecord1/custom_field/Secret1`


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/secrets-manager/integrations/teamcity.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
