我正在寻找一种方法来设置拉动部署,与
Windows下的传统推送部署模型相对应.
最佳情况是:
>将文件部署到主服务器
>子服务器将检查主服务器是否在给定时间或时间间隔内有更新.
>如果主服务器包含更新,那么它会下载更新和/或执行脚本(类似于nant?)
解决方案需要尽可能轻,并且必须在Windows环境下运行.
我已经看了Chef和SmartFrog,但不适合这种特殊情况.
编辑:部署了多个软件.这些是数据库脚本,Windows服务和网站.每个孩子都有自己独特的脚本,因为它的要求和身份验证细节与其他人不同.
编辑2:
到目前为止,人们已经提出了很好的答案,但最终的解决方案确实需要保证安全,内部运行,所有这些都在同一时间发生.这是由于合规性,行业法规和版本问题(例如,db服务器与服务不同步).我想到的最终解决方案将类似于主服务器上的FPT服务器和运行在子服务器上的Nant来执行安装例程(启动,停止服务,安装sql脚本,记录安装).这是目前最接近的东西,但并不理想,因为nant在推送的基础上工作(仅在某人或程序,例如cruisecontrol运行脚本时执行).我确信必须有一个解决方案来为Windows进行适当的PULL部署.如果您可以同时跨多个服务器进行部署,则Windows更新和Linux上的APT是拉动部署的绝佳示例.
解决方法
您说您想要进行Windows软件部署,但是您还要谈论构建脚本语言,例如NAnt.如果是我,我会使用InstallShield编写一个Windows Installer程序包,并利用它的UpdateManager服务让客户端从更新服务器获取更新.这些工具已经存在并经过长时间的验证,并且比您重新发明的任何东西都要安全得多.