(三)jenkins+bonobo git server+windows系统自动化部署springboot项目(远程windows自动化部署)
前提
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下也是可以这么做的,有几种方法:
把程序变做Windows服务,然后shell中通过net start 命令启动服务
但这种做法需要改变程序或者依赖其他程序把当前的程序变为服务通过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自动化部署)相关推荐
- (二)jenkins+bonobo git server+windows系统自动化部署springboot项目(自动化部署)
前提:jenkins安装 参考:(一)jenkins+bonobo git server+windows系统自动化部署springboot项目(jenkins安装) 1插件下载 主要是检查如下插件是否 ...
- (一)jenkins+bonobo git server+windows系统自动化部署springboot项目(jenkins安装)
1 环境确认 先确认服务器安装了JDK,maven,git,并配置好了环境变量 2 jenkins war包下载 官网路径 https://www.jenkins.io/download/ 因为安装的 ...
- windows搭建Git服务器之Bonobo Git Server
参考地址: https://blog.csdn.net/desovo/article/details/78412407 https://blog.csdn.net/ynnmnm/article/det ...
- windows服务器安装Bonobo Git Server
需下载软件列表: bonobo git server TortoiseGit Git 安装bonobo git服务器 1.下载解压 将下载的bonobo git server压缩包解压,并放到C:\i ...
- Windows下Bonobo.Git.Server服务器的搭建
Windows下Bonobo.Git.Server服务器的搭建 操作记录 搭建本地服务器,提交自己写的代码,很方便.记录一下自己成功搭建的操作步骤,以免以后忘记了. 一.安装IIS 1.控制面板 ...
- Windows 底下安装 git Server: Bonobo Git Server
Bonobo Git Server 是一套基于 asp.net 的 git 服务器.运行于 Windows IIS 上. 把它解压缩出来放到一个目录下,设置注意几点: 1. 该目录让 IIS_User ...
- Bonobo Git Server搭建本地(Windows)私有的Git服务器
1. 安装 先下载Bonobo Git Server,下载地址 Bonobo Git Server 下载完成后解压,打开文件夹就会有这样的一个目录 然后把它放到C盘目录下 创建inetpub文件夹 , ...
- Bonobo Git Server搭建本地Git服务器(Windows 下)
Abstract 1. 搭建Bonobo Git Server前的准备 2. 安装 1. 搭建Bonobo Git Server Git Server有很多种,且对各个平台的都有支持. 详细的平台对比 ...
- Bonobo Git Server的使用
当你想用Git,而源代码服务器是Windows系统时,你将面临一个问题:如何在Windows上搭建Git服务器? Bonobo Git Server基于.NET Framework 4.0+ASP.N ...
最新文章
- 关于编程的浅学习与深学习
- android java file 清理垃圾获取文件大小 删除文件等操作
- 【攻防世界013】elrond32
- uvalive5989(水题)
- 增强型的for循环linkedlist_LinkedList的复习
- nedc工况_东南DX3 EV续航升级 NEDC综合工况续航451公里
- iredmail开源邮件系统部署
- 西门子触摸屏脚本程序_西门子PLC触摸屏如何编写程序
- 使用Kinect测量身高
- android usb 摄像头 驱动开发,自制USB摄像头硬件的驱动编写_修改UVC
- 静态路由 动态路由 默认路由 默认网关
- 李煌老师发表的算法方面的论文
- 数学分析:换元积分法与分部积分法
- 设计模式之创建型——工厂模式(3种)
- Python-混音、叠加音频、拼接音频及批处理
- 传输速率、带宽和吞吐量的含义和相应的基本单位
- 快手宣布取消“大小周”,互联网公司“996风气”封印松动?
- 北邮机试 | bupt oj | 105. 寻找宝藏 | 多叉树
- 感动了中国,为什么没感动CCTV——白礼芳老人,感恩与回报
- 【电源专题】充电过程中指示灯怎么就红绿闪烁或是同时亮
热门文章
- 关于OAI-PMH协议
- 雨水情自动监测 遥测终端机
- win7如何安装mysql5.7_WIN764安装mysql5.7
- #千锋逆战班 Java
- 今后五年你不能不知道的大数据
- Linux云计算的文件管理和用户管理(01)
- python 董付国程序设计基础与应用第三版pdf_Python 程序设计基础(董付国 著)完整版PDF[6MB]...
- python中polyfit、poly1d函数
- Cesium地下管线信息系统(视频)
- 联发科技c语言面试题,联发科技笔试题