• 【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服务器上。

  • 相关阅读:
    JavaScript的3种继承方式
    JavaScript回调函数及数组方法测试
    JavaScript实现二叉树算法
    SpringMVC之使用Servlet原生API作为参数
    HashMap详解
    面试笔记--Fast-Fail(快速失败)机制
    面试笔记--HashMap扩容机制
    org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
    多模块调用Service失败
    常用命令汇总
  • 原文地址:https://www.cnblogs.com/chooperman/p/14067251.html
Copyright © 2020-2023  润新知