2

我在我们的域内构建了服务器(它必须是因为它还与域中的其他框通信),以及一个位于 DMZ 中的网络服务器。

作为我们构建脚本的一部分,我想使用 Nant 复制任务将网站部署到 DMZ 中的网络服务器。问题是,Nant 是从在构建服务器上的系统帐户下运行的 TeamCity 调用的,我无法找到让构建服务器系统帐户访问 DMZ 网络服务器目录的方法。(无论如何,这可能不是一个好主意)。

无论如何告诉 Nant 在不同的 Windows 用户下运行特定任务,还是有另一种解决方案来解决我的问题?

编辑:我遇到的另一个限制是我不能创建新的域帐户(好吧,至少在没有经过批准程序的情况下不能)。我可以创建本地计算机帐户,但在这种情况下,runas 似乎无法跨 DMZ 工作。

4

2 回答 2

2

几个选项可能是:

  1. 使用Simple Command Runner执行类似runas的命令,指定在不同用户帐户下运行的 nant.exe。
  2. 更改 TeamCity 服务器运行的帐户;就像有权访问 DMZ 的有限特权用户一样。
  3. 尝试使用NAntContrib提供的<scp>(安全复制)任务。
  4. 使用 nant <exec>任务调用 ftp 程序,该程序将文件放在 DMZ 上。

希望这能提供一点帮助。祝你好运!

于 2008-12-07T16:58:18.027 回答
0

您可以使用 powershell 远程处理从构建服务器中提取版本。与使用文件副本之类的推送版本相比,服务器将更不容易受到攻击。

我正在使用一个自定义应用程序来执行此操作,该应用程序登录到 teamcity 并下载工件,然后在本地使用 powershell 进行部署。

于 2008-12-08T16:32:17.690 回答