最近有一个项目,要用windows server服务器,系统是windows server 2012 R2数据中心版,因为服务器比较多,不可能人工去一台一台发布,所以就想看下有没有类似jenkins一样的CI/CD工具,可以批量做项目CI/CD的
网上搜寻一番,jenkins就可以做到
windows的远程是RDP协议的,而jenkins添加服务器,都是通过ssh协议进行文件传输及命令传输等,jenkins要支持RDP协议是不太可能的,所以只能从windows上面想办法
网上很多都是通过在windows上面安装第三方的ssh服务,比如powershell server,或者freessh,这些产品都是收费的
想起了win10很早之前就支持openssh了,所以去微软官方查了下,确实可以通过安装openssh server,实现通过ssh连接windows服务器
在win10或者window server 2019系统上,可以通过PowerShell来直接在线安装
安装完成后,就可以在服务中看到OpenSSH SSH Server的服务
如果你是服务器要用,启动类型就设置成自启动,我这里是win10测试,所以没改,然后手动启动后,就可以看到监听22端口了
接着通过ssh连接到windows服务器了,在jenkins中,系统管理——系统设置中的Publish over ssh中添加SSH Servers
端口选择22,记得防火墙开22端口,如果是云服务器,记得安全组开通22端口,用户名密码,就是正常RDP远程桌面连接的用户名密码,当然你可以可以通过ssh-keygen.exe生成密钥对,通过公钥进行连接
需要注意的是,Remote Directory这里要选择/,而它对应的就是windows下面的C盘下面用户下面对应用户名的目录
如果是windows server 2012R2的系统,默认是无法通过PowerShell命令在线安装的,需要下载对应版本的OpenSSH的安装包,手动安装
下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases
将下载的压缩包,解压到合适的目录,我是放C:Program Files下面,解压之后,直接在命令行执行目录下的install-sshd.ps1就可以自动完成安装
安装完成后,在服务中同样也是开启自启动
剩下的就和操作linux一样了,创建合适风格的jenkins任务,唯一的区别就是如果你用shell脚本,现在需要写bat了,或者可以用python脚本来替代,看个人需求