Jenkins 通过 OpenSSH 实现 Windows 下的 CI/CD
最近有一个项目,要用 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 脚本来替代,看个人需求
版权声明: 本文为 InfoQ 作者【运维研习社】的原创文章。
原文链接:【http://xie.infoq.cn/article/20b56ae0cda7e0fe103f79a4b】。文章转载请联系作者。
评论