web-dev-qa-db-ja.com

方法:Teamcity + GitHub

GitHubから監視、抽出、ビルドするようにTeamcityを正常に構成した人はいますか?

TeamcityのSSHキーをどこでどのように構成するかがわかりません。 Teamcityをシステムアカウントでシステムサービスとして実行しています。では、TeamcityはSSH構成をどこに隠しますか?

[〜#〜]編集[〜#〜]

これを機能させるには、エージェントがシステムアカウントで実行されないようにする必要がありました。

34
Jeff Fritz

わかりました...これでWindowsサーバーでの作業を開始できました。 TeamCity 4.5 Professional を構成するために行った手順は次のとおりです。

  1. JetBrains Git VCSプラグインをダウンロードしました
  2. ダウンロードしたZipファイルを.BuildServer\pluginsにコピーしました
  3. [管理]> [ビルド構成の編集]> [VCSルート構成の編集]画面で、[Git(JetBrains)]を選択しました
  4. GitHubプロジェクトページからクローンURLを入力しました
  5. 認証方法「デフォルトの秘密鍵」に設定-これは重要です
    1. TeamCity BuildAgentは、SSHインストールがそのユーザー用に適切に構成された、標準ユーザーとして実行されている必要があります。
    2. SSH構成については GitHub SSHの指示に従ってください
  6. ユーザー名は空白のままにします。これは、GitHubクローンURLですでに提供されているはずです
27
Jeff Fritz

WindowsでSYSTEMユーザーとして実行されているエージェントと連携するための「デフォルトの秘密鍵」を入手しました。私にとって、答えはIDファイルを

C:\Windows\SysWOW64\config\systemprofile\.ssh\id_rsa

の代わりに

C:\Windows\System32\config\systemprofile\.ssh\id_rsa

7
Dan

あなたの質問はSSHに固有のものですが、GitHubとTeamCityの両方がHTTP認証をサポートするようになったため、HTTP overTLSを使用する方が確かに簡単で迅速です。さらに、GitHubは パーソナルAPIトークン の権限が制限されていることもサポートしています。これは、好みに合わせて構成したり、必要に応じて新しいユーザーを作成したりできます。

TeamCity設定の以下の画像を参照してください。

Teamcity configuration

4
David Mohundro

TeamCity 8.1以降、SSHキー管理が公式にサポートされています。次のドキュメントをお読みください: https://confluence.jetbrains.com/display/TCD9/SSH+Keys+Management

2
KIR

(これは古い質問に対する最新の回答です)

私は次のようにgithub/gitlabとteamcity7で動作するsshベースのビルドを取得しました:

Teamcityマシンにログオンし、puttygen/ssh-keygenを使用してrsaキーのペアを生成し、opensshキーを適切な場所に保存します。 (Gotcha-puttygenを使用していますか?秘密鍵がopenssh形式であることを確認してください-puttygen>変換> openshキーのエクスポート)

秘密鍵をに保存することをお勧めします

C:\.ssh\id_rsa

Teamcityで「デフォルトの秘密鍵」を設定します-ファイルを作成します

C:\.ssh\config

そしてその中にこれを置きます:

Host * IdentityFile c:\.ssh\id_rsa

Gitlab/guthubアカウントにログインし、teamcity秘密鍵のopenssh公開鍵を貼り付けます。

これで、デフォルトの秘密鍵を使用してソースをプルできる、teamcityにgitvcsルートを作成できるようになります。

1
alastairtree

秘密鍵の場合、ユーザー名は空白にする必要があります。

1
Davem M

理由はわかりませんが、Default Private Keyを選択できませんでした。

次に、以下のスクリーンショットのようにCustom Private Keyを選択します: enter image description here

Usernameフィールドは空である必要があります。

Passphraseフィールドは、秘密鍵のパスワードです

(この秘密鍵の公開鍵をすでにgitに追加していると仮定します。)

誰も私のように立ち往生しないことを願っています!

0
ThangTD

this のようなサードパーティのプラグインが必要になる場合があります

0
Dean