1

我正在研究 Web 应用程序的自动部署过程。部署将需要:

  • 使用 sqlpackage.exe 将数据库更改部署到数据库
  • 使用 Web 服务将报告服务报告部署到报告服务器
  • 将 Web 应用程序部署到 Web 服务器
  • 为报告部署字体
  • 除其他事项外

前两个从 Web 服务器运行起来相当简单,因为 Web 服务和数据库是可联系的,并且部署工具通过网络运行。

从阅读看来,powershell 远程处理应该是要走的路,在内部这不会是一个问题。但是,当部署到生产环境时,这将在数据中心中执行,其中机器(2web、1db)根本不在域中。我想提出一个通用流程,可以通过适当的配置在内部和外部运行。Powershell 远程处理,机器不在域中,似乎需要使用 https 等进行相当多的配置,因为 NT 凭据无法验证。

我应该争取配置powershell远程处理,还是将其配置为仅使用psexec直接在远程机器上执行powershell脚本,将部署工件复制到远程机器上的放置文件夹是最好的方法?

psexec 似乎“正常工作”。看来powershell远程处理带来了更多的痛苦。

4

1 回答 1

0

那为什么不使用 psexec 呢?您可以将它的角色限制为只是让您进入远程计算机,而不是让它感染您的脚本。我没有尝试让 ps 远程处理在非域上工作,但总的来说,我发现它需要付出相当大的努力才能开始。正如您所说,Psexec 通常可以更简单。

请原谅兜售,但我帮助构建的名为 PowerUp 的开源框架基本上为您完成了所有这些工作。它使用一种模型,其中 powershell(以及 psake)脚本可以通过调用特定函数将执行转移到另一台机器上。这可以通过 powershell 远程处理或 psexec 来完成 - 您不需要更改脚本,它只需要每个环境的设置来说明您想使用哪个。

在https://github.com/AffinityID/PowerUpSamples/tree/master/SimpleWebsite检查其他示例。

希望这足以向您展示,但如果不让我知道,我们可以更详细地介绍。

于 2013-02-01T00:36:58.190 回答