前提

jenkins安装,参考:(一)jenkins+bonobo git server+windows系统自动化部署springboot项目(jenkins安装)
自动化部署,参考:(二)jenkins+bonobo git server+windows系统自动化部署springboot项目(自动化部署)

1.在需要部署程序的服务器上安装OpenSSH的服务端

注意:OpenSSH 在 2018 年秋季已添加至 Windows,并包含在 Windows 10 和 Windows Server 2019 中
1)首先通过powershell安装OpenSSH的服务端
在开始图标
上点击右键,选择Windows PowerShell(管理员)(A)
在powershell中输入:

# 安装OpenSSH客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0       #安装OpenSSH服务端
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

在powershell中输入:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

若返回为:

Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed       Name  : OpenSSH.Server~~~~0.0.1.0
State : Installed

则表示安装成功,若返回为:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent      Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

表示安装失败,再来一遍吧,注意全程需要管理员权限。

2启动SSH服务器

依然是以管理员身份打开PowerShell,然后运行以下命令来启动 sshd service

        #启动sshd服务        Start-Service sshd      # 将sshd服务设置为自动启动,若不设置需要在每次重启后重新开启sshd        Set-Service -Name sshd -StartupType 'Automatic'       # 确认防火墙规则,一般在安装时会配置好     Get-NetFirewallRule -Name *ssh*

# 若安装时未添加防火墙规则"“OpenSSH-Server-In-TCP”",则通过以下命令添加

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

3开启密钥登录

这一步是重中之重,加强安全,减少麻烦!!!
首先在cmd命令窗口运行命令生成ssh秘钥:
运行:​​ssh-keygen -t rsa​​​。要获得更安全的4096位密钥,请运行:​​ssh-keygen -t rsa -b 4096​​
在询问您要将密钥保存在何处时,按Enter键(这将使用默认位置)。
输入密钥密码。不输入则为无密码

上图表示生成成功,秘钥默认生成位置:C:\Users\用户名.ssh
id_rsa.pub为公钥
id_rsa为私钥
公钥 (~.ssh\id_rsa.pub) 的内容需放置在服务器上的一个名为authorized_keys的文本文件中,该文件位于 C:\Users\username.ssh\。 OpenSSH 客户端包括了 scp 来帮助实现此目的,这是一个安全的文件传输实用工具。
可以手动复制文件修改成authorized_keys,也可以用下面的命令生成

# 确保服务器上存在.ssh 文件夹,若不存在则使用下面命令创建
ssh username@ip mkdir C:\Users\username\.ssh\      #通过scp将本地的公钥上传到服务器上并重命名为authorized_keys,注意此方法会覆盖原有authorized_keys
scp C:\Users\username\.ssh\id_rsa.pub user1@ip:C:\Users\username\.ssh\authorized_keys

查看是否生成成功:

后续有多个客户端需要连接该服务器时,将authorized_keys以记事本的格式打开,将客户端生成的公钥另起一行粘贴到其中,如下图
如果authorized_keys文件不能直接修改,请复制到别的路径进行修改后再更新到C:\Users\username.ssh\ 在Windows OpenSSH中,默认的授权密钥存放位置为C:\ProgramData\ssh\administrators_authorized_keys,此位置对应为管理用户权限。因此需要修改默认授权文件位置。通过文本编辑器(推荐vscode)打开ProgramData\ssh\sshd_config,修改以下条目

#允许公钥授权访问,确保条目不被注释
PubkeyAuthentication yes        #授权文件存放位置,确保条目不被注释
AuthorizedKeysFile      .ssh/authorized_keys        #可选,关闭密码登录,提高安全性
PasswordAuthentication no       #注释掉默认授权文件位置,确保以下条目被注释
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

注意修改sshd_config需要管理员权限,修改完成后保存并推出。
在PowerShell(管理员)中重启sshd服务

#重启sshd,需要管理员权限
Restart-Service sshd

至此可以使用ssl登录windows了

最后附赠如何使用PowerShell卸载Windows OpenSSH

# 卸载 OpenSSH 客户端
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0        # 卸载 OpenSSH 服务端
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

4、jenkins配置

1在jenkins所在的服务器上生成ssl秘钥(生成方法参考上记步骤)
生成秘钥后,将公钥复制粘贴到系统部署服务器的authorized_keys文件中

2、jenkins系统配置

配置ssl连接,新增ssl服务器连接


点击高级
填写上面步骤中生成的私钥的地址,设置端口:22,保存设置

3、新建item,配置部署命令

部署的配置和部署到本机基本相同,只在构建的命令出有所区别

此处在构建处选择:Send files or execute commands over SSH

填写要传送的文件以及命令

注意1:
Source files:填写相对路径,此处默认根路径为:C:\Users\Administrator.WIN-C4VV3ILSN5P.jenkins\workspace\item名\
Remove prefix:表示传送时要去除的前缀,如果不去除,传送文件时会创建相应的目录
Remote directory:表示传送文件的路径,设置【/】表示根目录,因为在步骤2中设置了ssl登录的根目录为:【D:\001test】,所以此处表示传送到路径:【D:\001test】
Exec command:将启动程序等的命令放到批处理中,然后在此处调用bat文件,注意前面要加上【cmd /c】否则可能不会执行

bat命令内容说明
如果直接在bat中写执行jar包的命令【java -jar 】,那在ssl断开的时候,默认也会终止所有ssl启动的进程,所以在java程序启动后,又会被OpenSSH服务结束,最终导致无法启动
基于此问题,Linux下可以通过nohup来把启动的程序作为服务来长久运行;那么Windows下也是可以这么做的,有几种方法:

  1. 把程序变做Windows服务,然后shell中通过net start 命令启动服务
    但这种做法需要改变程序或者依赖其他程序把当前的程序变为服务

  2. 通过Windows的计划任务来实现
    创建一个启动程序的计划任务,然后通过以下命令来启动。
    “schtask /run /tn “”/任务目录/任务名字”" "

    此处采用第二种方法
    1.首先创建启动程序的bat:start.bat

@echo off::把bat所在的目录设置成当前工作路径
cd /d %~dp0"set titlename=""自动化测试"""
set jarfile=test
set port=9001
set copysource=D:\001test\
set copytargert=D:\001test\001\::根据端口号关闭指定进程
"for /f ""tokens=1-5"" %%i in ('netstat -ano^|findstr "":%port%""') do ("echo kill the process %%m who use the port taskkill /pid %%m -t -fgoto q
)
:qset CURRENT_DATE=-%date:~,4%%date:~5,2%%date:~8,2%
:: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
:: 当时钟小于等于9时,前面有个空格,这时我们少截取一位,从第1位开始截取
set TMP_HOUR=%time:~1,1%
set NINE=9
set ZERO=0
:: 处理时钟是个位数的时候前面补上一个0, LEQ表示小于等于
if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%
set CURRENT_TIME=%HOUR%%MINUTE%%SECOND%::修改文件名
ren %jarfile%.jar %jarfile%%CURRENT_DATE%%CURRENT_TIME%.jar::拷贝jar包
copy /y %copysource%%jarfile%.jar %copytargert%
::启动jar包
start %titlename% java -Dfile.encoding=UTF-8 -jar %copytargert%%jarfile%.jar --server.port=%port%
"::schtask /run /tn ""自动化部署"" "
exit

2创建一个启动程序的计划任务


3、创建启动任务的bat:start1.bat

"schtasks /run /tn ""自动化部署"" "
exit

4、在jenkins中调用start1.bat启动计划任务

cmd /c "D:\001test\001\start1.bat"
至此即完成部署到远程windows的配置,push代码进行测试

(三)jenkins+bonobo git server+windows系统自动化部署springboot项目(远程windows自动化部署)相关推荐

  1. (二)jenkins+bonobo git server+windows系统自动化部署springboot项目(自动化部署)

    前提:jenkins安装 参考:(一)jenkins+bonobo git server+windows系统自动化部署springboot项目(jenkins安装) 1插件下载 主要是检查如下插件是否 ...

  2. (一)jenkins+bonobo git server+windows系统自动化部署springboot项目(jenkins安装)

    1 环境确认 先确认服务器安装了JDK,maven,git,并配置好了环境变量 2 jenkins war包下载 官网路径 https://www.jenkins.io/download/ 因为安装的 ...

  3. windows搭建Git服务器之Bonobo Git Server

    参考地址: https://blog.csdn.net/desovo/article/details/78412407 https://blog.csdn.net/ynnmnm/article/det ...

  4. windows服务器安装Bonobo Git Server

    需下载软件列表: bonobo git server TortoiseGit Git 安装bonobo git服务器 1.下载解压 将下载的bonobo git server压缩包解压,并放到C:\i ...

  5. Windows下Bonobo.Git.Server服务器的搭建

    Windows下Bonobo.Git.Server服务器的搭建 操作记录 搭建本地服务器,提交自己写的代码,很方便.记录一下自己成功搭建的操作步骤,以免以后忘记了.    一.安装IIS 1.控制面板 ...

  6. Windows 底下安装 git Server: Bonobo Git Server

    Bonobo Git Server 是一套基于 asp.net 的 git 服务器.运行于 Windows IIS 上. 把它解压缩出来放到一个目录下,设置注意几点: 1. 该目录让 IIS_User ...

  7. Bonobo Git Server搭建本地(Windows)私有的Git服务器

    1. 安装 先下载Bonobo Git Server,下载地址 Bonobo Git Server 下载完成后解压,打开文件夹就会有这样的一个目录 然后把它放到C盘目录下 创建inetpub文件夹 , ...

  8. Bonobo Git Server搭建本地Git服务器(Windows 下)

    Abstract 1. 搭建Bonobo Git Server前的准备 2. 安装 1. 搭建Bonobo Git Server Git Server有很多种,且对各个平台的都有支持. 详细的平台对比 ...

  9. Bonobo Git Server的使用

    当你想用Git,而源代码服务器是Windows系统时,你将面临一个问题:如何在Windows上搭建Git服务器? Bonobo Git Server基于.NET Framework 4.0+ASP.N ...

最新文章

  1. 关于编程的浅学习与深学习
  2. android java file 清理垃圾获取文件大小 删除文件等操作
  3. 【攻防世界013】elrond32
  4. uvalive5989(水题)
  5. 增强型的for循环linkedlist_LinkedList的复习
  6. nedc工况_东南DX3 EV续航升级 NEDC综合工况续航451公里
  7. iredmail开源邮件系统部署
  8. 西门子触摸屏脚本程序_西门子PLC触摸屏如何编写程序
  9. 使用Kinect测量身高
  10. android usb 摄像头 驱动开发,自制USB摄像头硬件的驱动编写_修改UVC
  11. 静态路由 动态路由 默认路由 默认网关
  12. 李煌老师发表的算法方面的论文
  13. 数学分析:换元积分法与分部积分法
  14. 设计模式之创建型——工厂模式(3种)
  15. Python-混音、叠加音频、拼接音频及批处理
  16. 传输速率、带宽和吞吐量的含义和相应的基本单位
  17. 快手宣布取消“大小周”,互联网公司“996风气”封印松动?
  18. 北邮机试 | bupt oj | 105. 寻找宝藏 | 多叉树
  19. 感动了中国,为什么没感动CCTV——白礼芳老人,感恩与回报
  20. 【电源专题】充电过程中指示灯怎么就红绿闪烁或是同时亮

热门文章

  1. 关于OAI-PMH协议
  2. 雨水情自动监测 遥测终端机
  3. win7如何安装mysql5.7_WIN764安装mysql5.7
  4. #千锋逆战班 Java
  5. 今后五年你不能不知道的大数据
  6. Linux云计算的文件管理和用户管理(01)
  7. python 董付国程序设计基础与应用第三版pdf_Python 程序设计基础(董付国 著)完整版PDF[6MB]...
  8. python中polyfit、poly1d函数
  9. Cesium地下管线信息系统(视频)
  10. 联发科技c语言面试题,联发科技笔试题