当前位置: 首页 > news >正文

[jenkins自动化2]: linux自动化部署方式之流水线(下篇)

目录

1. 引言: 

2.  进阶操作 流水线

-> 2.1 简介:

-> 2.2 最终效果图展示: 

-> 2.3 有没有心动, 真的像流水线一样, 实现了一键部署启动 

 3. 实现方式

 3.1 下载几个插件

 3.2  创建流水线任务

 3.3 点击配置

 3.4 根据流水线语法 写一个简单的helloworld

3.5 执行该语法 打开blueOcean查看效果

 4. 实战操作 一键git+maven+ssh

 4.1 直接上流水线语法吧  带复选框的

4.2 修改位置 

---> 4.2.1 ssh不知道如何更换??

 4.3 最终执行的选择框效果

4.4 开始构建 执行操作 效果图

5. 报错解决

-> 5.1 maven提示没有jdk

---> 5.1.1 查看全局配置中的maven位置

---> 5.1.2 查看java_home 

ps: 最最重要的是 重启jenkins服务, 不是网页


1. 引言: 

借用jenkins 实现基础的自动化部署

jenkins安装配置操作: --> [Jenkins自动化] 实现远端linux自动化部署方式(上篇)

2.  进阶操作 流水线

-> 2.1 简介:

单个服务上述的操作操作起来也是很轻松, 但是面对多个服务的一件部署显得力不从心,

有没有既能拉取代码 打包并且上传的方法呢, 答案是肯定的: 流水线 

实现了git+maven+ssh一键操作

-> 2.2 最终效果图展示: 

-> 2.3 有没有心动, 真的像流水线一样, 实现了一键部署启动 

 3. 实现方式

ps: 没有看上篇的, 需要先看上篇:  [Jenkins自动化] 实现远端linux自动化部署方式(上篇)

 3.1 下载几个插件

1. Extended Choice Parameter Plugin

2. blue ocean

 3.2  创建流水线任务

 3.3 点击配置

拉到最下面 流水线语法

 3.4 根据流水线语法 写一个简单的helloworld

pipeline {agent anystages {stage('pull') {steps {echo 'Hello World1'}}stage('Hello2') {steps {echo 'Hello World2'}}stage('Hello3') {steps {echo 'Hello World3'}}}
}

3.5 执行该语法 打开blueOcean查看效果

 4. 实战操作 一键git+maven+ssh

 4.1 直接上流水线语法吧  带复选框的

pipeline {agent any
//     environment {
// 	    VERSION = "${TIME}"   
// 		PATH = "C:/Program Files/Java/jdk1.8.0_201/bin:D:/software/jenkins/pzy/Jenkins/.jenkins/tools/hudson.tasks.Maven_MavenInstallation/apache-maven-3.8.2/bin:$PATH"    
//     }parameters {extendedChoice (name: 'project_names', type: 'PT_CHECKBOX', description: '请勾选所要发布的项目模块', quoteValue: false, saveJSONParameterToFile: false, value: '服务A,服务B,服务C', descriptionPropertyValue: '服务A,服务B,服务C', visibleItemCount: 11, multiSelectDelimiter: ',', defaultValue: '服务A');choice(description: 'Which git branch do you prefer to choose?',name: 'gitbranch',choices: ['develop',"test",'master']);booleanParam(name: 'skip_buid', defaultValue: false, description: '是否跳过构建?')}stages {stage('PULL') {steps {echo "git pull--------${gitbranch}"git branch: "${gitbranch}", credentialsId: '7910292c-1a80-4d56-9e3b-147a97ce3ed8', url: 'Git地址 'echo 'git pull success--------'}}stage('BUILD') {steps {echo "${skip_buid}"script {echo "${skip_buid}"if (!skip_buid.toBoolean()) {echo 'build --------'bat """D:/software/maven/apache-maven-3.6.3/bin/mvn clean install -Dmaven.test.skip=true"""echo 'build success--------'}}}}stage('SSH'){steps {script{for (projectname in project_names.tokenize(',')) {echo "ssh --------${projectname + '.jar'}"echo "/bin/sh /opt/app/startup.sh  /opt/app/${projectname+'.jar'}"sshPublisher(publishers: [sshPublisherDesc(configName: 'pzy', transfers: [sshTransfer(cleanRemote: false,excludes: '', execCommand: "/bin/sh /opt/app/shutdown.sh ${projectname+'.jar'}; /bin/sh /opt/app/startup.sh  /opt/app/${projectname+'.jar'}",execTimeout: 120000, flatten: false,makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+',remoteDirectory: '/opt/app/',remoteDirectorySDF: false, removePrefix: "${projectname}\\target\\",sourceFiles: "${projectname}\\target\\${projectname+'.jar'}",usePty: true)],usePromotionTimestamp: false,useWorkspaceInPromotion: false,verbose: false)])echo 'ssh sucess --------'}}}}}
}

4.2 修改位置 

git路径, maven位置 服务器上传路径 ssh的账号密码

---> 4.2.1 ssh不知道如何更换??

流水线语法- ssh搜索->ssh创建框 里面就可以操作了

 4.3 最终执行的选择框效果

4.4 开始构建 执行操作 效果图


5. 报错解决

-> 5.1 maven提示没有jdk

---> 5.1.1 查看全局配置中的maven位置

---> 5.1.2 查看java_home 

set java_home

 如果不存在  配置一下即可

ps: 最最重要的是 重启jenkins服务, 不是网页


[jenkins的windows版 常规自动化操作 结束]

相关文章:

[jenkins自动化2]: linux自动化部署方式之流水线(下篇)

目录 1. 引言: 2. 进阶操作 流水线 -> 2.1 简介: -> 2.2 最终效果图展示: -> 2.3 有没有心动, 真的像流水线一样, 实现了一键部署启动 3. 实现方式 3.1 下载几个插件 3.2 创建流水线任务 3.3 点击配置 3.4 根据流水线语法 写一个简单的helloworld 3.5 执行…...

idea使用 ( 二 ) 创建java项目

3.创建java项目 3.1.创建普通java项目 3.1.1.打开创建向导 接 2.3.1.创建新的项目 也可以 从菜单选择建立项目 会打开下面的选择界面 3.1.2.不使用模板 3.1.3.设置项目名 Project name : 项目名 Project location : 项目存放的位置 确认创建 3.1.4.关闭tips 将 Dont s…...

RabbitMq-接收消息+redis消费者重复接收

在接触RammitMQ时,好多文章都说在配置中设置属性 # rabbitmq 配置 rabbitmq:host: xxx.xxx.xxx.xxxport: xxxxusername: xxxpassword: xxxxxx## 生产端配置# 开启发布确认,就是confirm模式. 消费端ack应答后,才将消息从队列中删除#确认消息已发送到队列(Queue)pub…...

Orangepi Zero2 全志H616简介

为什么学 学习目标依然是Linux 系统 ,平台是 ARM 架构 蜂巢快递柜,配送机器人,这些应用场景用C51,STM32单片机无法实现 第三方介入库的局限性,比如刷脸支付和公交车收费设备需要集成支付宝SDK,提供的libalipay.so 是…...

Golang每日一练(leetDay0047)

目录 138. 复制带随机指针的链表 Copy List with Random-pointer 🌟🌟 139. 单词拆分 Word Break 🌟🌟 140. 单词拆分 II Word Break II 🌟🌟🌟 🌟 每日一练刷题专栏 &…...

HCL Nomad Web 1.0.7发布和新功能验证

大家好,才是真的好。 要问在HCL Notes/Domino系列产品中,谁更新得最快,那么答案一定是HCL Nomad Web。 你看上图右边,从1.0.1更新到1.0.7,都没花多少时间。 从HCL Nomad Web 1.0.5版本开始,可以支持直接…...

春招网申简历填写三技巧

网申第一关很重要,不夸张的说网申决定了你的笔试机会,从如信银行考试中心了解到,银行网申筛选过程中,有机器筛选人工筛选两道程序,掌握填写技巧后对提升简历通过率有较大帮助,一定要把握住,关于…...

计算机网络基础知识总结

经过学习我们可以知道: 关于计算机网络: ip地址端口号协议协议分层TCP五层协议协议封装两台计算机之间的通信 目录 ip地址 端口号 协议 协议分层 五层协议体系结构 (1) 应用层 (2) 运输层 (3) 网络层 (4)数据链路层 (5)物理层 封装&分用 两台主机之间的通信 …...

(下)苹果有开源,但又怎样呢?

一开始,因为 MacOS X ,苹果与 FreeBSD 过往从密,不仅挖来 FreeBSD 创始人 Jordan Hubbard,更是在此基础上开源了 Darwin。但是,苹果并没有给予 Darwin 太多关注,作为苹果的首个开源项目,它算不上…...

row_number 和 cte 使用实例:考场监考安排

row_number 和 cte 使用实例:考场监考安排 考场监考安排使用 cte 模拟两个表的原始数据使用 master..spt_values 进行数据填充优先安排时长较长的考试使用 cte 安排第一个需要安排的科目统计老师已有的监考时长尝试使用 cte 递归,进行下一场考试安排&…...

2023天梯赛记录

文章目录 L2-001 紧急救援L2-002 链表去重L2-004 这是二叉搜索树吗?L2-005 集合相似度L2-006 树的遍历L2-007 家庭房产L2-010 排座位L2-011 玩转二叉树L2-012 关于堆的判断L2-013 红色警报L2-014 列车调度L2-016 愿天下有情人都是失散多年的兄妹L2-019 悄悄关注L2-0…...

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了

大家好,我是小富~ 前言 忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒…...

OpenGL(三)——着色器

目录 一、前言 二、Shader 2 Shader 2.1 顶点着色器 2.2 片段着色器 三、APP 2 Shader 四、顶点颜色属性 五、着色器类C 一、前言 着色器Shader是运行在GPU上的小程序,为图形渲染管线的某个特定部分而运行。各阶段着色器之间无法通信,只有输入和输…...

【MySQL】单表查询

一、表的准备 查询操作的SQL演示将基于下面这四张表进行,我们先创建好这四张数据表,并为其添加数据。 1、第一张表为部门表,名称为包含三个字段:部门编号(deptno),部门名称(dname&…...

第一章 安装Unity

使用Unity开发游戏的话,首先要安装Unity Hub和Unity Editor两个软件。大家可以去官方地址下载:https://unity.cn/releases/full/2020 (这里我们选择的是2020版本) Unity Hub 是安装 Unity Editor、创建项目、管理帐户和许可证的主…...

20230425----重返学习-vue项目-vue自定义指令-vue-cli的配置

day-057-fifty-seven-20230425-vue项目-vue自定义指令-vue-cli的配置 vue项目 vuex版 普通版纯axios:切换页面,就会重新发送一次ajax请求普通版升级:vuex版vuex的常用功能 vuex 数据通信vuex 缓存数据 前进后退,切换页面&#…...

el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数

使用el-input-number标签 也可以使用typenumbe和v-model.number属性&#xff0c;两者结合使用&#xff0c;能满足大多数需求&#xff0c;如果还不满足&#xff0c;可以再结合正则表达式过滤 <el-input v-model.number"value" type"number" /> el-i…...

Docker Compose的常用命令与docker-compose.yml脚本属性配置

Docker Compose的常用命令与配置 常见命令ps&#xff1a;列出所有运行容器logs&#xff1a;查看服务日志输出port&#xff1a;打印绑定的公共端口build&#xff1a;构建或者重新构建服务start&#xff1a;启动指定服务已存在的容器stop&#xff1a;停止已运行的服务的容器&…...

with语句和上下文管理器(py编程)

1. with语句的使用 基础班向文件中写入数据的示例代码: # 1、以写的方式打开文件f open("1.txt", "w")# 2、写入文件内容f.write("hello world")# 3、关闭文件f.close()代码说明: 文件使用完后必须关闭&#xff0c;因为文件对象会占用操作系统…...

《JavaEE初阶》HTTP协议和HTTPS

《JavaEE初阶》HTTP协议和HTTPS 文章目录 《JavaEE初阶》HTTP协议和HTTPSHTTP协议是应用层协议:使用Fiddler抓取HTTP请求和响应:Fiddler的下载和基本使用:Fiddler的中间代理人身份:其他抓包工具: 先简单认识HTTP请求与HTTP响应:HTTP请求:HTTP响应: HTTP请求详解:首行&#xff1…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...