windows api判断过滤驱动是否安装_如何使用Jenkins在windows服务器上自动远程部署?...

b0adfb3dab3e29f917f5cdf2eda1cbc4.gif

背景说明

  一般情况下我们都会使用linux作为服务器,但是在现实开发和实施中,会遇到一些情况必须使用windows作为服务器的情况; 对于这种情况想通过jenkins实现自动部署,就没有linux这么简单,这篇文章主要说明jenkins如何自动服务到windows服务器的方法和步骤

部署步骤

3e6f500aa1ec1e6284f3f900d6d39759.png

  整体框图说明

Windows服务器上安装SSH

  为了在windows服务器能够通过SSH进行访问,需要安装响应的SSH服务,安装采用的是powershell server,具体安装方法参照下面对应的参考[2],但是有几点需要说明: cea41daaea5bac0aaed61793cb763fa7.png    登录powershell server对应的用户名 6c1a64f89e318c38b42b56c3695140de.png     登录powershell server对应的用户名   其中powershellserver对应的按照路径如下图所示: 8630c1e689a55f20fd2d522a814a2bcb.png    image.png

Jenkins相关配置

  先在jenkins上指定对应的远程SSH server的主机地址,名称,用户名和密码,具体步骤如下图所示: 491ff8b9848a269048b0610fdd8c5dfd.png   jenkins 配置SSH server信息 1918a168d146cef454b932d481ca6123.png    jenkins 配置SSH server信息 37e4179c9201ef1d2213092ccf714a9d.png     jenkins 配置SSH server信息

部署项目相关配置

  为了能够灵活执行一键部署,需要在项目中增加如下内容,如下图所示: f68b76b6b86cc2274b47350139720624.png    项目增加的内容   文件jenkins-copy.bat对应的文件内容,如下所示:

@echo on

mkdir %1

cd /d %1

rem 查询对应的windows服务是否存在

sc query %3

if %errorlevel% == 0 (

    echo 'service exist'

) else (

    echo 'service not exist'

)

rem 暂停对应的window服务

net stop %3

rem 通过ping暂停指定的秒数

set SLEEP=ping 127.0.0.1 /n

%SLEEP% 5 > nul

rem 删除指定的windows服务

sc delete %3

%SLEEP% 5 > nul

rem 创建历史文件夹目录

mkdir history

rem 将原来的内容重命名拷贝到历史文件夹中

move %4.jar history/%4-%Date:~0,4%%Date:~5,2%%Date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%.jar

rem 拷贝ssh server路径下的内容到服务安装目录

copy %2\trade-app\target\*.jar .

copy %2\trade-app\src\main\resources\*.yml .

copy %2\install-deploy\*.*  .

rem windows服务安装

%4.exe install

%SLEEP% 10 > nul

rem windows服务启动

net start %3

rem %SLEEP% 5 > nul

 文件trade-app-0.0.1-SNAPSHOT.exe和文件trade-app-0.0.1-SNAPSHOT.xml的作用是将对应的java服务安装成windows服务,具体的可以参照参考[4],其中trade-app-0.0.1-SNAPSHOT.xml文件内容如下:

    trade-api

    trade-api

    HaiYi Trade Api

    C:\Program Files\Java\jdk1.8.0_131\bin\java

    -server -Xmx768m -Xms768m -Xss256k -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=40 -XX:+PrintGCDateStamps -Xloggc:./logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs/java.hprof -XX:+DisableExplicitGC -XX:-OmitStackTraceInFastThrow -XX:+PrintCommandLineFlags -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.util.Arrays.useLegacyMergeSort=true -Dfile.encoding=UTF-8 -jar -Dspring.config.location=./application.yml  "trade-app-0.0.1-SNAPSHOT.jar"

    rotate 

Jenkins 项目配置

  在项目里面配置Send build artifacts Over SSH 内容,如下图所示: 62cd94a2e5dd98e4eccd117419b73d7c.png    Send build artifacts Over SSH配置 83cd76180e6a372f636226448721b96d.png    源路径配置 85c5cab9ab992a29cc6587a77dbda0fa.png    路径不包含项目名称   对应的Exec command 内容如下

cd C:\"Program Files"\nsoftware\"PowerShell Server 2016"\sftproot

cd install-deploy

./jenkins-copy.bat F:\V5\tradeapi-cashBond C:\"Program Files"\nsoftware\"PowerShell Server 2016"\sftproot trade-api-cashBond trade-app-0.0.1-SNAPSHOT

rem 对参数进行说明 **F:\V5\tradeapi-cashBond** 表示项目在SSH server上安装的路径;**C:\"Program Files"\nsoftware\"PowerShell Server 2016"\sftproot** 表示SSH server对应的按照路径即是对应jenkins上**remote directory** 的“/”的含义;**trade-api** 表示部署在SSH server上对应的windows服务的名称;**trade-app-0.0.1-SNAPSHOT** 对应的是需要安装服务的exe文件名称

验证

  在windows服务器上打开服务,如下图所示: 1de2aa2c57505342a5d0120430fc8d6f.png   windows服务查看 116a267e5b387d39542ad51f22178c9b.png

c8675f9805cc5e3334704529b254d3bc.gif

原文链接:https://www.jianshu.com/p/1d5252378d6c

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除。

推荐阅读

点击阅读☞自动化测试第一步 | Selenium自动化环境搭建

点击阅读☞如何在Selenium项目中使用GeckoDriver?

点击阅读☞Python Selenium之数据驱动测试

点击阅读☞Selenium实现自动化下单、退款、撤销回归测试

点击阅读☞Selenium自动化测试框架之PO设计模式

4277d3177147874813f2e47d8e6f2db1.gif388bd74eaab72a8c104226ec0c89b8ac.gif a6a54b1fff3aef2729da8a27e7723a9b.png爱我请给我好看! 388bd74eaab72a8c104226ec0c89b8ac.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值