如何使用Nant / TeamCity跨DMZ进行部署?

时间:2008-12-05 17:26:07

标签: build-automation nant teamcity

我在我们的域内构建服务器(它需要是因为它还与域中的其他框进行通信),以及DMZ中的网络服务器。

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

有没有告诉Nant在不同的Windows用户下运行特定任务,还是有另一个解决我问题的方法?

编辑:我正在运行的另一个限制是我无法创建新的域帐户(嗯,至少在没有通过审批流程的情况下)。我可以创建本地计算机帐户,但在这种情况下,似乎runas不会在DMZ中运行。

2 个答案:

答案 0 :(得分:2)

一些选项可能是:

  1. 使用Simple Command Runner执行runas之类的操作,指定在其他用户帐户下运行的nant.exe。
  2. 更改TeamCity服务器运行的帐户;就像有权访问DMZ的特权用户一样。
  3. 尝试使用<scp>提供的NAntContrib(安全副本)任务。
  4. 使用nant <exec>任务调用ftp程序,将文件放在DMZ上。
  5. 希望这会提供一些帮助。祝你好运!

答案 1 :(得分:0)

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

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