Jenkins通过OpenSSH发布WinServer2016

这篇具有很好参考价值的文章主要介绍了Jenkins通过OpenSSH发布WinServer2016。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、实验环境


jenkins环境

jenkins入门与安装
容器为docker

主机 IP 系统版本
jenkins 10.10.10.10 rhel7.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来进行安装

Jenkins通过OpenSSH发布WinServer2016,Devops,jenkins,运维,winserver ci/cd

2、安装

(1)打开PowerShell

在对应目录打开PowerShell

Jenkins通过OpenSSH发布WinServer2016,Devops,jenkins,运维,winserver ci/cd
(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

Jenkins通过OpenSSH发布WinServer2016,Devops,jenkins,运维,winserver ci/cd

2、创建pipeline

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

pipeline {
    agent any
    
    environment { 
        PROJECT_NAME="test-monitor" 
        UPDATE_BAT="D:\\project\\update\\update.bat"
        DEST_JAR_PATH="D:\\project\\monitor\\${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/jdk
                PATH=$PATH:$JAVA_HOME/bin
                /usr/local/maven/bin/mvn clean install package -am -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:

根据业务进行自我修改文章来源地址https://www.toymoban.com/news/detail-625243.html

@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

到了这里,关于Jenkins通过OpenSSH发布WinServer2016的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【OpenSSH+Jenkins搭建项目自动化部署】

    https://github.com/PowerShell/Win32-0penSSH/releases 下载最新的 OpenSSH安装包,如:openSSH-Win64.zip 将压缩包解压到 C:Program FilesOpenSSH 管理员运行cmd 进入目录C:Program FilesOpenSSH 执行命令 管理员运行cmd 进入目录C:Program FilesOpenSSH 执行命令 在当前用户的文件夹下会生成一对秘钥 将文件名

    2024年02月22日
    浏览(32)
  • DevOps-Jenkins

    Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 官网 场景一 研发人员上传开发好的代码到github代码仓库 需要将代码下载nginx服务器部署 手动下载再部署/使用脚本下载在部署 场景二 静态IP(可以上

    2024年02月15日
    浏览(44)
  • DevOps持续集成-Jenkins(4)

    DevOps概述 软件开发最初是由两个团队共同组成:(没有采用DevOps之前) 开发团队 :从头开始设计和整体系统的构建(编写代码)。需要系统不停的迭代更新。 运维团队 :将开发团队的代码进行测试通过后再部署上线。确保系统稳定运行。 没有采用DevOps的缺点: 这看似两个

    2024年02月08日
    浏览(39)
  • DevOps持续集成-Jenkins(2)

    DevOps概述 软件开发最初是由两个团队共同组成:(没有采用DevOps之前) 开发团队 :从头开始设计和整体系统的构建(编写代码)。需要系统不停的迭代更新。 运维团队 :将开发团队的代码进行测试通过后再部署上线。确保系统稳定运行。 没有采用DevOps的缺点: 这看似两个

    2024年02月08日
    浏览(46)
  • DevOps-7:Jenkins API介绍

    为什么要使用Jenkins的API? 我在使用Jenkins的过程中,觉得Jenkins的UI还是有不少问题的: UI性能差,尤其是有一些任务在构建中时,UI非常卡顿,等个十来秒都正常,极端时甚至会崩溃; 权限管理功能薄弱,虽然有 Role-based Authorization Strategy 类似的插件提供了角色管理,但是还

    2024年02月14日
    浏览(32)
  • 【DevOps视频笔记】8. Jenkins 配置

    一、Jenkins 入门配置 1. 工具 / 插件 介绍 二、插件和工具配置 1. 配置 JDK 和 Maven Stage 1:将服务器中 JDK 和 Maven 映射到 jenkins 容器中 Stage 2:jenkins 全局配置中 -- 指定JAVA_HOME目录 Stage 3:jenkins 全局配置中 -- 指定MAVEN_HOME目录 2. 配置 Publish Over SSH Stage 1:添加 SSH Servers Stage 2:设置

    2024年02月11日
    浏览(24)
  • DevOps(九)Selenium 介绍和Jenkins集成

    Selenium 是一个开源的自动化测试工具,主要用于 Web 浏览器自动化测试。它支持多种编程语言,包括 Java、Python、Ruby、C# 等,可以在多种浏览器中运行,包括 Chrome、Firefox、IE、Edge 等。 Selenium 的主要特点 多浏览器支持 :Selenium 支持多种浏览器,包括 Chrome、Firefox、IE、Edge 等

    2024年04月25日
    浏览(27)
  • 【DevOps视频笔记】6 - 7. Jenkins 介绍 和 安装

    一、Integrate 工具 二、Jenkins 介绍 1. Jenkins 最主要的工作 2. CI / CD 可以理解为: 2.1 CI 过程 2.2 CD 过程  三、Jenkins 安装  1. 安装准备工作  2. 安装 Jenkins Stage 1:拉取 jenkins 镜像 Stage 2:编写docker-compose.yml Stage 3:设置data目录写权限(不设置会报错) Stage 4:安装 jenkins Stage 5:

    2024年02月10日
    浏览(28)
  • 【云原生 • DevOps】一文掌握持续集成工具 Jenkins

    目录 一、持续集成工具 Jenkins 介绍 1. 什么是持续集成 2. Jenkins 介绍 二、Jenkins 的安装与部署 1. 安装 Jenkins 2. 本地访问 Jenkins 3. 插件的安装 4. 卸载 Jenkins 三、Jenkins 全局配置 1. Git 的安装与配置 2. JDK 的安装与配置 3. maven 的安装与配置 三、将代码上传至 Git 服务器 1. Gogs 的搭

    2024年02月03日
    浏览(46)
  • 【DEVOPS】Jenkins使用问题 - 控制台输出乱码

    部门内部对于Jenkins的使用采取的是Master + Slave Work Node的方式,即作为Master节点的Jenkins只负责任务调度,具体的操作由对应的Slave Work Node去执行。 最近团队成员反馈一个问题:一个Linux系统的Slave Work Node的编译日志输出中,中文部分均为乱码(如下图),这造成问题排查效率

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包