赞
踩
在window和window服务器间用jenkins
我要的网站程序部署在windows服务器上,现在在window系统上安装了jenkins ,想通过jenkins自动部署windows上程序。使用ssh登录。以下是环境搭建步骤。
1、 jenkins中安装 publish over ssh 插件
进入jenkins 的 系统管理->插件管理,安装publish over ssh
2、 Windows to Windows SSH登录 参考博文:https://blog.csdn.net/flyingshuai/article/details/72897692
3、用crt可以用ssh方式连接到服务器后,说明已经可以通过ssh登录了,然后在配置jenkins的ssh服务。
进入jenkins 的 系统管理->系统设置->ssh 设置
sshfuw
填写注意:
Name随便填,Hostname是ip或者主机名,用户名同远程桌面 用的用户名,点击高级后,填写密码部分。
其中的Remote Directory需要重点关注,该参数表示的是:ssh文件上传后,文件在远端服务器上的保存路径,路径需要预先建立好。
同时,如果上传了文件后,需要执行命令的话,这也是bat、shell等命令的工作目录。
针对windows类型的ssh服务器,这边的填写只能写相对路径,(base 路径为C:\Users\Administrator,如果作为非管理员登录,可能会稍微不一样,可以自己用SecureCRT之类的登进去试试,看看在哪个路径下)
如果不填,就是在base路径;
如果填写内容为“\”,(不含双引号),则路径会是c盘根路径;
如果填"target",则路径会是C:www.wanmeiyuele.cn www.120xh.cn \www.thd178.com/ Users\Administrator\target。
我这边简单起见,先不填。因为其作为后续命令执行的工作路径的原因,会有一些坑。点击测试连接,连接成功。
4、jenkins能远程连接上windows服务器,但是传输文件为0的问题,设置不对。
解放方法:
在服务端的powershell server的设置中,SFTP中设置的路径的目录就是服务器上文件保存的目录。
构建后,代码会下载到C:\Users\Administrator.jenkins\workspace目录下
Name:远程服务器名,该名字需要先在系统配置中配置好Publis over ssh的信息。
source files: 如果填写**/* 就是把C:\Users\Administrator.jenkins\workspace目录下所有的文件都拷贝到远程服务器。
如果写的是**/tsmes-all发布.zip 就是将C:\Users\Administrator.jenkins\workspace目录下的tsmes-all发布.zip文件拷贝到远程服务器。
如果写的是**/tsmes-all发布/* 就是将当前工作空间下的"tsmes-all发布"目录下的所有内容拷贝到远程服务器。
Remove frefix :该项可以不填。
Remote directory:远程服务器上存放的目录,在服务端SFTP设置的目录的相对目录,如果不存在该目录就会自动创建一个目录,如我图上设置的,远程服务器上存放的目录为:C:\Program Files\nsoftware\PowerShell Server 2016\sftproot\powershellserver
按上图设置后项目构建成功了,并文件也成功传到了远程服务上,如下截图:
4、在远程windows服务器上执行bat脚本的设置。
在job的ssh server 中的Exec command 配置要运行的bat,脚本
说明:
cmd /c 是执行完命令后关闭命令窗口, "D:\HF\copy.bat"是脚本在服务器上存放的路径
另外还有cmd /k 是执行完命令后不关闭命令窗口。
cmd /c call XXX.bat指的是在当前窗口调用另外一个bat程序。
如果bat脚本有用strat 去启动应用,使用cmd /c XXX.bat 会出现构建超时问题,这时需要使用start 来启动脚本,如:start XXX.bat.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。