我设置了一个构建服务器 (Windows Server 2008),用于从我们的 SVN 存储库中拉取代码并构建我们开发的 Web 应用程序。我当前的流程涉及使用 WinSCP 执行远程同步,在发布构建后将更新的文件发送到我们的生产服务器。这很有效,但有时我们的更改需要回收 IIS 应用程序池,以便最新文件正确服务器。由于我们的生产服务器由另一家提供商托管,我无法使用 PsExec 或 PowerShell 在生产服务器上启动必要的应用程序池。我们的生产服务器确实有一个可用的 Cisco VPN 客户端,使用它确实允许我运行 PsExec,但我不能确定客户端是否始终处于连接状态。
我想知道其他人如何处理这种情况,以及除了通过 VPN 使用 PsExec 之外是否还有其他建议。我正在使用 Hudson 来管理我们的构建过程,因此执行任何可以编写脚本的操作都不是大问题。任何建议都非常感谢。
答案1
WinRM(远程管理)。看起来需要几个步骤才能使用 HTTPS 在 Internet 上安全地运行,但它是为 HTTP 远程管理而设计的,而且我看过视频,也读过很多关于 WinRM + PowerShell 等主题的资料。我只是还没有通过防火墙远程使用它。
http://msdn.microsoft.com/en-us/library/aa384372(v=vs.85).aspx
WinRM 和 PowerShell 2008 的更新版本
http://www.microsoft.com/downloads/en/details.aspx?FamilyId=d37e25cf-db05-4b23-a852-cdf865d81b82&displaylang=en
答案2
事实证明,一个简单的解决方案是在我们的生产机器上安装 SSH 服务器并打开必要的防火墙端口。SSH 允许我以安全的方式访问生产服务器上的命令 shell 并执行我需要的操作。我还没有完成所有的脚本,但看起来它可以解决问题。