Hudson 里面可以创建Job,去执行自动部署,需要让远程的服务器执行一些脚本。 问题出来了:CI如何告诉远程机器执行脚本?
在Hudson里面有插件,支持ssh,和Powershell 可以做到。
目前环境是window7作为hudson 的服务器, window2003 sp2 II6 为需要部署的环境。 下面用不同的办法去尝试:
第一个当然是ssh。服务器开启sshd 服务,CIserver 作为客户端。
服务器可以用cygwin作为一个sshd服务器,或者安装sshd一个单独服务器opensshd。但是window下面的IIS的命令行管理工具是居然是一个VBscript。
在cygin 里面调用vbscript 的解析器Cscript去执行,类似 Script iisweb.vbs /start website. 居然执行不了。 排除路径错误,还是执行不了。 没有解决,网上一搜问题一片,目前没有解决。应该是Script 解释器引擎,与cygwin的环境不一致。
转换思路,尝试找其他exe工具,发现 appcmd.exe. 在window2008上面可以运行,不错,但是window2003不能运行。典型window不向后兼容。放弃!
发现webdeply.exe, 同样只支持window2003以上版本.悲摧!
时间不等人,再想办法.
IISRESET,也可以工作!居然支持完成调用。但是杀伤力气太大,每次都重启IIS。先用这个,项目要升级到2008/II7,到时问题自动解决!
第二个办事powershell2.0。
首先powershell2.0 在window2003上面没有缺省安装。
安装powershell2.0: powershell2.0是window2003 的一个补丁包WindowsServer2003-KB968930-x64-ENG(http://www.microsoft.com/download/en/confirmation.aspx?id=4045). 需要在administrator权限下面安装。
尝试远程登录:
wiki: powershell http://en.wikipedia.org/wiki/Windows_PowerShell
powershell 远程访问: http://tech.ccidnet.com/art/3539/20100801/2102911_1.html
记录下来,下次更新。