Jenkins通过OpenSSH发布WinServer2016

news/2025/2/12 4:54:41/

上一篇文章> Jenkins集成SonarQube代码质量检测

一、实验环境


jenkins环境

jenkins入门与安装
容器为docker

主机IP系统版本
jenkins10.10.10.10rhel7.5

二、OpenSSH安装


1、下载

官网地址:https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse
Win32-OpenSSH下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases
下载版本:v9.2.2.0p1-Beta

Windows Server 2019、Windows 10、Windows Server 2022可以直接使用Windows设置安装来安装OpenSSH,可直接参考微软官网中OpenSSH管理Windows进行安装,但是由于本机是winserver2016,所以使用Win32-OpenSSH来进行安装

在这里插入图片描述

2、安装

(1)打开PowerShell

在对应目录打开PowerShell

在这里插入图片描述
(2)进行安装

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

3、配置OpenSSH服务

如果想方便调用可以设置环境变量

(1)打开防火墙22端口

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

(2)设置开机自启

Set-Service -Name sshd -StartupType 'Automatic'

(3)启动

 Start-Service sshd

三、jenkins配置


1、配置连接用户

系统管理 -->系统配置–>Publish over SSH

在这里插入图片描述

2、创建pipeline

:Publish over SSH中execCommand后面传入参数,末尾要有个空格
mvn编译通过-pl指定编译模块,如果不需要/usr/local/maven/bin/mvn clean install package -Dmaven.test.skip=true即可

pipeline {agent anyenvironment { PROJECT_NAME="test-monitor" UPDATE_BAT="D:\\project\\update\\update.bat"DEST_JAR_PATH="D:\\project\\mission\\${PROJECT_NAME}.jar"SOURCE_JAR_PATH="C:\\${JOB_NAME}\\${PROJECT_NAME}.jar"PORT="8709"}stages {stage('git拉取代码') {steps {checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'e87fcb1b-fb2b-xxxx-xxxx-16d1ca8bf5fb', url: 'https://gitee.com/xxxx.git']])}}stage('maven编译代码') {steps {sh '''JAVA_HOME=/usr/local/jdkPATH=$PATH:$JAVA_HOME/bin/usr/local/maven/bin/mvn clean install package -Dmaven.test.skip=true -pl ${PROJECT_NAME}'''}}stage('发送到服务器') {steps {script() {deploy()}}}}
}def deploy() {sshPublisher(publishers: [sshPublisherDesc(configName: 'xxxx-winserver-test',transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "cmd /c call ${UPDATE_BAT} ${DEST_JAR_PATH} ${SOURCE_JAR_PATH} ${PORT} ", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: "${JOB_NAME}", remoteDirectorySDF: false, removePrefix: "${PROJECT_NAME}/target", sourceFiles: "${PROJECT_NAME}/target/*.jar")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}

update.bat:

根据业务进行自我修改

@echo off
set "JAR_PATH_NAME_DEST=%1"
set "JAR_PATH_NAME_SOURCE=%2"
set "JAR_PORT=%3"
set CURRENT_TIME=%date:~0,4%%date:~5,2%%date:~8,2%rem 查找占用指定端口的进程ID
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :%JAR_PORT%') do set "pid=%%a"if "%pid%"=="" (echo 没有找到占用端口 %port% 的进程。
) else (taskkill /pid %pid% /f
)REM 备份
move %JAR_PATH_NAME_DEST% %JAR_PATH_NAME_DEST%-%CURRENT_TIME%move %JAR_PATH_NAME_SOURCE% %JAR_PATH_NAME_DEST%
exit 0

http://www.ppmy.cn/news/997596.html

相关文章

warning: ignoring JAVA_HOME=D:\JDK; using bundled JDK报错解决

warning: ignoring JAVA_HOMED:\JDK; using bundled JDK报错原因是因为你JDK版本太低或者你的ElasticSearch版本太高降低版本即可、 我的是JDK1.8我下载的是elasticsearch-8.7.0改成elasticsearch-7.6.1就可以了 elasticsearch-7.6.1地址:弹性搜索 7.6.1 |弹性的 …

node.js相关的npm包的集合

一、实用功能 1. qs 一个简单易用的字符串解析和格式化库 2.rxjs RxJS是一组模块化的库,用于使用 JavaScript 中的可观察集合和组合来组合异步和基于事件的程序。 3. mitt 微型 200b 功能事件发射器/发布订阅. 4.Underscore.js Underscore.js是一个用于 JavaScript…

【Shell】Shell编程之文本处理器——awk

sed可以对文本内容进行增删改查 主要使用的是改和查;查使用grep,正则表达式使用grep -E更好 awk是文本三剑客中最强大的文本工具; awk也是按行进行操作;对行操作完之后可以根据指定命令来取列 awk的分隔符:默认为 &…

【Python机器学习】实验07 K-means无监督聚类

文章目录 聚类K-means 聚类1 准备数据2 给定聚类中心,计算每个点属于哪个聚类,定义函数实现3 根据已有的数据的标记,来重新更新聚类中心,定义相应的函数4 初始化聚类中心,定义相应的函数5 定义K-means算法6 绘制各个聚…

测试|Selenium介绍及环境搭建

测试|Selenium介绍及环境搭建 1.Selenium是什么 Selenium是用来做web网站 UI自动化的测试工具/测试框架。 我们这里说的Selenium是Selenium2.0,它由Selenium IDE,Webdriver, Selenium Grid组成。 Selenium IDE是用于Selenium测试的完成集成开发环境&…

版本控制和团队协作:前端工程化的关键要素

文章目录 版本控制系统介绍(如 Git)1. 分布式系统2. 分支管理3. 版本控制4. 快速和高效5. 社区和生态系统 分支管理和团队协作流程1. 主分支2. 功能分支3. 开发工作4. 合并到develop5. 发布准备6. 发布 持续集成与持续部署实践持续集成(CI&am…

前端构建(打包)工具发展史

大多同学的前端学习路线:三件套框架慢慢延伸到其他,在这个过程中,有一个词出现的频率很高:webpack 。 作为一个很出名的前端构建工具我们在网上随便一搜,就会有各种教程:loader plugin entry吧啦吧啦。 但…

Android 热修复

Android 热修复 本文链接:https://blog.csdn.net/feather_wch/article/details/132052856 文章目录 Android 热修复方案对比AndFixDeprecateRobust-即时生效Tinker-非及时生效 ClassLoader实战一手动打补丁包 热修复二 方案对比 AndFixDeprecate 1、AndFix为什么…