2

我正在尝试让 mercurial 在 Windows 构建服务器上工作并且遇到问题。我遇到了设置 mercurial 钥匙串的麻烦(我必须安装 tortoisehg),它适用于每个用户。

问题是我使用 Bamboo 来运行构建,它作为 NT 服务运行,由SYSTEM. 因此,每当它尝试对 hg 做任何事情时,都会提示输入密码。

显然,我可以将密码放入配置文件中,但我想避免纯文本密码随便乱放。

据我所知,有两种方法可以解决这个问题。我都不知道该怎么做:

  1. 使 mercurial 钥匙串全局化,而不是每个用户。这甚至可能是不可能的。
  2. 以某种方式以 SYSTEM 用户身份登录并使用它执行一些反复无常的命令,以便它的钥匙串使用用户/密码信息播种。
  3. 完全不同的东西……?

提前感谢您提供的任何见解!

-本

4

2 回答 2

2

我知道您已经找到了解决方案,但如果未来的 Google 员工在这里结束,我会发布我所做的。

首先,您可以让竹子服务以您想要的任何用户身份运行。我需要它以普通用户身份运行,以便我的编译器需要的一些注册表项可用。要为竹子服务设置用户,您需要编辑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

我最终不得不将竹远程代理从 NT 服务恢复为在普通用户下运行的常规旧进程。就服务器管理而言,这显然有其自己的一套陷阱,但现在必须这样做。除非有人想出更好的方法,否则我会在一天左右将其标记为答案。

于 2011-09-29T23:55:09.990 回答