2

私はWindowsビルドサーバーでMercurialを動作させようとしている最中で、問題が発生しています。Mercurialキーチェーンを設定するのに苦労しました(tortoisehgをインストールする必要がありました)。これはユーザーごとに機能します。

問題は、Bambooを使用してビルドを実行していて、が所有するNTサービスとして実行されていることSYSTEMです。したがって、hgで何かをしようとすると、パスワードの入力を求められます。

もちろん、パスワードを構成ファイルに入れることもできますが、プレーンテキストのパスワードをそのまま使用することは避けたいと思います。

私の知る限り、この問題を攻撃する方法は2つあります。どちらも私は方法を知りません:

  1. Mercurialキーチェーンをユーザーごとではなくグローバルにします。これは不可能かもしれません。
  2. どういうわけか、SYSTEMユーザーとしてログインし、それを使っていくつかのMercurialコマンドを実行して、そのキーチェーンにユーザー/パスワード情報がシードされるようにします。
  3. まったく違う何か…?

あなたが持っているかもしれない洞察を事前に感謝します!

-ベン

4

2 に答える 2

2

あなたはすでに解決策を見つけていると思いますが、将来のGoogle社員がここにたどり着いた場合に備えて、私が行ったことを投稿します。

まず、bambooサービスを任意のユーザーとして実行できます。コンパイラが必要とするレジストリエントリの一部を利用できるように、通常のユーザーとして実行する必要がありました。バンブーサービスのユーザーを設定するには、wrapper.confC:\Program Files\Bamboo\conf\wrapper.conf通常のインストールで)を編集する必要があります。明らかに、これを編集する前に、既存のサービスがインストールされている場合はアンインストールする必要があります。

ログインアカウントを設定する最も簡単な方法は、これをファイルの最後に追加することです。

wrapper.ntservice.account=domain\username
wrapper.ntservice.password=s3cr3t.p@ssw0rd

明らかに、プレーンテキストファイルでログインパスワードを使用したくない場合があります。これを回避する方法はいくつかあるので、http://wrapper.tanukisoftware.com/doc/english/props-nt.htmlを参照してくださいwrapper.ntservice.password.prompt特に興味深いかもしれません。

Mercurialにsshを使用する場合は、別のオプションがあります。Mercurial.iniでsshコマンドを設定できます。ビルドサーバーの場合、これらのコマンドのほとんどをC:\ Program Files \ TortoiseHg \ hgrc.dのファイルに構成することで、システム全体に一度に設定しました。次のような行があります。

ssh=TortoisePlink.exe -batch -i "C:/Users/autobuilder/hgPrivKey.ppk" -l autobuilder

私にとってautobuilderは、物事が実行される通常のユーザーです。hgPrivKey.ppkは、PuttyGenで作成された秘密鍵ファイルです。サーバーのauthorized_keysファイルに公開鍵があります。

うまくいけば、これらの提案は誰かを正しい軌道に乗せるでしょう。

于 2011-11-23T17:30:22.917 に答える
0

結局、bambooリモートエージェントをNTサービスから通常のユーザーで実行されている通常の古いプロセスに戻す必要がありました。サーバーの管理に関しては、これには明らかに独自の落とし穴がありますが、今のところはやらなければなりません。誰かがもっと良いものを思い付かない限り、私はこれを1日かそこらで答えとしてマークします。

于 2011-09-29T23:55:09.990 に答える