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日
    浏览(40)
  • DevOps-Jenkins

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

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

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

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

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

    2024年02月08日
    浏览(54)
  • 【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日
    浏览(36)
  • DevOps-7:Jenkins API介绍

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

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

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

    2024年04月25日
    浏览(35)
  • 基于jenkins+k8s实现devops

    由于jenkins运行在k8s上能够更好的利用动态agent进行构建。所以写了个部署教程,亲测无坑 1、创建ns kubectl create namespace devops 2、kubectl apply -f jenkins.yml 注意:镜像建议使用最新版本,因为jenkin平台默认提供了最新的插件,且无法选择版本,所以如果jenkins版本过低会导致插件不

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

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

    2024年02月11日
    浏览(76)
  • 【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日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包