【CI/CD】使用Jenkins部署VUE项目到windows服务器_配置Jenkins通过SSH连接windows server机器(3)

 一、分析准备

 接上文,我们的项目是部署在windows server机器上的,没有Linux方便,需要先配置好SSH连接工具,以便后续Jenkins能连接到此服务器实现传包+执行脚本等任务。

经过分析,我们要做如下的准备:

1、在项目所在的windows server机器上安装SSH工具

2、通过工具、命令行等,手动确保Jenkins机器能通过SSH连接上项目机器

3、在确认上述连接正常的情况下,进行Jenkins中的相关配置,使得后续可通过Jenkins项目任务部署代码到服务器 

PS:项目的情况如下

Jenkins机器

1台,部署在windows机器

项目语言 VUE纯前端
项目部署服务器 1台,windows server服务器

 

 二、windows server服务器SSH工具安装

由于windows机器没有自带ssh工具,需要手动进行安装,经过了笔者在网上的各类查询及亲测亲用,最终仅使用PowerShellServer工具时成功了。下面仅介绍这款工具。

1)、PowerShellServer安装

请自行百度下载安装包。

然后安装,一路下一步即可,姓名邮箱这里可以随便填一个即可。

 这里选择NO。

   

2)、PowerShellServer配置

请按如下方案进行配置。

1、勾选作为服务运行。

 2、勾选截图中的两项,并且配置SSH Port。关于SSH port需要注意

a、不要和电脑其他端口冲突;

b、如有防火墙,需要配置该端口在防火墙中不被拦截;

c、如你的机器是阿里云、华为云等,需要找管理员给你对外开放此端口;(特别重要)

  

配置好后且启动了powershell,在机器上输入netstat -an,应该可以看到配置的ssh端口。

  3、勾选SFTP选项,并且配置后续接收Jenkins发送的代码包的默认目录。

  4、配置使用密钥访问。

 注:上一步的前提是,将部署Jenkins机器生成的公钥(参考上一篇文章https://www.cnblogs.com/chooperman/p/14061469.html),复制到项目所在机器中,一般放在.ssh文件夹下。

    

 5、点击启动即可。

注意:PowerShellServer工具最多同时只能1个客户端连接,后续在调试的时候要注意不要在命令行已连接的时候,同时尝试用Jenkins连接,会报错。

 

3)、PowerShellServer连接

为了方便问题的排查,我们选择一步步进行PowerShellServer连接。首先通过手动方式的连接,排除PowerShellServer本身的配置问题。在此基础之上,我们再通过Jenkins任务的配置去连接。

a)、手动通过Jenkins机器连接项目服务器

 Jenkins所在机器安装ssh服务后,可以使用命令行的方式进行远程连接项目服务器。如果没有安装ssh服务,也可以使用putty或者xshell等工具连接,原理一样。下面介绍命令行的方式连接。

由于部署Jenkins的机器也是windows,输入cmd进入命令行后,输入如下命令尝试连接项目服务器。

ssh -p SSH端口号 机器IP

1、-p SSH端口号用于指定SSH端口号,这里的端口号则是在PowerShellServer的server setting中配置的。

2、若需显示详细的连接信息,可以输入-v 命令,即ssh -v -p SSH端口号 机器IP

3、由于使用密钥连接,命令中不需要在ip前面指定访问用户名。

  如上图所示,即表明成功通过SSH命令远程连接上了项目的windows server服务器。可以输入一些命令来进一步验证。另外PowerShellServer工具中也同时显示了已被Jenkins机器连接上。

  

b)、Jenkins配置连接项目服务器

由于上一步已经确认ssh本身是OK的,这里我们就放心的进行Jenkins侧的相关配置。

进入系统配置

  这里进行2处SSH的配置

首先配置SSH remote hosts(用于后续通过ssh输入命令行,其实Publish over SSH中也可以使用命令,但其命令在Jenkins的控制台命令中不回显,因此使用SSH remote hosts输入命令,起到回显的作用。感兴趣可以自己试试。如实填写IP、SSH端口号、选择全局凭证(即Jenkins服务器生成的私钥,配合项目服务器已经有的公钥,用于远程访问项目机器,参考https://www.cnblogs.com/chooperman/p/14061469.html),点击check connection,发现成功即可。

  配置Publish over SSH(用于后续将生成的代码包放到远程服务器)。这里和上图的配置基本一致,区别是这里没有使用配置好的全局凭证,而是单独在某个SSH Server中配置了私钥。当然这里也可以使用全局凭证,个人喜好。

 好了,到目前为止我们确保了后续Jenkins可以通过SSH工具把代码包发送到windows server服务器。下一章开始介绍,如何配置1个Jenkins的任务用于日常构建vue项目,并部署到windows服务器上。

原文地址:https://www.cnblogs.com/chooperman/p/14067251.html