2011-09-28 87 views
2

我正在試圖讓一個Windows生成服務器上的mercurial工作,我有問題。我遇到了設置mercurial keychain(我不得不安裝tortoisehg)的麻煩,並且它在每個用戶的基礎上工作。Windows Mercurial全球鑰匙串

問題是,我使用Bamboo來運行構建,並且它作爲SYSTEM擁有的NT服務運行。因此,任何時候它試圖用hg做任何事情,都會提示輸入密碼。

顯然,我可以把密碼放到一個配置文件中,但是我想避免只是一個明文密碼。

據我所知,攻擊這個問題有兩種方法。我不知道該怎麼做:

  1. 使mercurial keychain成爲全局而不是每個用戶。這可能不可能。
  2. 以某種方式以SYSTEM用戶身份登錄,並使用它執行一些mercurial命令,以便其鑰匙串獲得用戶/密碼信息播種。
  3. 完全不同的東西......?

在此先感謝您的寶貴意見!

-Ben

回答

1

我意識到你已經找到了解決方案,但如果未來的Google員工在這裏結束工作,我會發布我所做的。

首先,您可以讓Bamboo服務以您想要的任何用戶身份運行。我需要它作爲普通用戶運行,以便我的編譯器需要的一些註冊表項可用。要爲竹服務設置用戶,您需要編輯wrapper.conf(正常安裝時的C:\Program Files\Bamboo\conf\wrapper.conf)。顯然,在編輯此服務之前,如果已安裝,則需要卸載現有服務。

設置登錄帳戶的最簡單的方法是通過增加此到文件底部

wrapper.ntservice.account=domain\username 
[email protected] 

很明顯,你可能不希望在一個純文本文件,你的登錄密碼。有幾種方法可以解決這個問題,所以我只會指出:http://wrapper.tanukisoftware.com/doc/english/props-nt.htmlwrapper.ntservice.password.prompt可能是特別感興趣的。

如果您使用ssh進行Mercurial,還有另一種選擇:您可以在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文件中有公鑰。

希望這些建議能讓某人走上正軌。

+0

不錯!我將不得不重新審視這個問題,並在我有空閒時間時嘗試一下。 – Ben

0

我最後不得不恢復從NT服務竹遠程代理回落到普通用戶下運行一個普通的舊工藝。就服務器的管理而言,這顯然伴隨着它自己的一些陷阱,但現在必須做。除非有人想出更好的東西,否則我會在一天左右將其標記爲答案。