持续集成交付CICD:Jenkins Pipeline与远程构建触发器

news2024/12/24 1:16:31

目录

一、实验

1.Jenkins Pipeline本地构建触发器

2.Jenkins Pipeline与远程构建触发器(第一种方式)

3.Jenkins Pipeline与远程构建触发器(第二种方式)

4.Jenkins Pipeline与远程构建触发器(第三种方式)

二、问题

1.pipeline插件依赖安装报错

2.控制台输出环境变量名冲突

3.并行构建job存在数据偏差

4.Base64编码如何构成


一、实验

1.Jenkins Pipeline本地构建触发器

(1)搜索“pipeline”,下载插件

(2)安装

(3)流水线配置

(4)构建起配置

(5)控制台输出

2.Jenkins Pipeline与远程构建触发器(第一种方式)

(1)第一种方式:http标准传值方式

#加双引号,否则会识别成shell里的后台进程&
curl -u账户:密码 "http://192.168.204.15:8080/job/buildpipeline/buildWithParameters?token=devops&Version=1.1.8&EnvType=prod"   

(2)构建远程触发命令

本次命令在jenkins slave(从节点)运行

(3)开始远程构建

(4)构建成功

3.Jenkins Pipeline与远程构建触发器(第二种方式)

(1)第二种方式:postman方式

用postman  , add New Request 

(2)postman 添加request

(2)postman自动生成

(3)添加基本认证(Basic Auth)

(4) 添加账户及密码

(5)点击send发送

(6)开始远程构建

(7)控制台查看

(8)远程构建完成

4.Jenkins Pipeline与远程构建触发器(第三种方式)

(1)第三种方式:python方式

python调取:用postman  , add New Request  ,code转换python requests

#代码
import requests

url = "http://192.168.204.15:8080/job/buildpipeline/buildWithParameters?token=devops&Version=1.1.8&EnvType=prod"

payload = {}
headers = {
  'Authorization': 'Basic XXXXXXXX'    #XXXXXXXX此处应为转换的Base64编码
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

(2)postman将http转换python代码

(3)python运行

本次命令在jenkins slave(从节点)运行

python代码

(4)开始远程构建

(5)远程构建中

(6)远程构建完成

二、问题

1.pipeline插件依赖安装报错

(1) 报错

(2)原因分析

部分插件由于缺少依赖无法加载

(3)解决方法

先安装durable-task插件,再安装Nodes and Processes 、Basic Steps等

2.控制台输出环境变量名冲突

(1)报错

(2)原因分析

环境名重复

(3)解决方法

修改环境名

修改前:

修改后:

成功:

3.并行构建job存在数据偏差

(1)问题

第一个job 对应一个/var/lib/jenkins/workspace/buildpipeline

第二个job 对应一个/var/lib/jenkins/workspace/buildpipeline@2

第三个job 对应一个/var/lib/jenkins/workspace/buildpipeline@3

(2)原因分析

对同一pepeline并行多个job,每一个job 对应相同的目录

(3)解决方法

随机生成一个不同的workspace

4.Base64编码如何构成

(1)说明

ASCII 码字符占 8 位二进制,而 Base64 占 6 位,取最小公倍数即为 24,即可以用 4 个 base64 字符去表示 3 个 ASCII 码字符。一个字节 8bit 存在 256 个状态,而一个 Base64 字符只有 64 个状态。 机智的人们于是规定,用每 4 个 Base64 字符去表示 3 个二进制字节,因为:64 * 64 * 64 * 64 = 256 * 256 * 256。 因为,Base64 将三个字节转化成四个字节,因此 Base64 编码后的文本,会比原文本大出三分之一左右。

选出 64 个字符——大写字母 A-Z、小写字母 a-z、数字 0-9、符号 "+"、"/"(再加上作为垫字的 "=",实际上是 65 个字符,垫字是当生成的 Base64 字符串的个数不是 4 的倍数时,添加在尾部的字符),作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。

(2)举例

字符串 ABC,对应的二进制序列为 01000001 01000010 01000011,按 6 位分组后为 010000 010100 001001 000011,根据编码表得到Base64 字符串 QUJD。

(3)Base64 编码表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1180628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 安卓 Soong构建系统——Blueprint Android.bp配置文件解析

文章目录 Android.bp起源Android.bp文件结构如何编写Android.bp文件实例详解实例1实例2 常见问题解答1. 如何确定使用哪种模块类型?2. 如何指定模块的依赖项?其他疑问可参考官方文档 参考文章:Android.bp 语法和使用 Android.bp起源 早期的A…

Python二级 每周练习题25

如果你感觉有收获,欢迎给我打赏 ———— 以激励我输出更多优质内容 练习一: 运算规则如下: (1) 若该数是偶数,,则变为原数的一半 (2) 若该数是奇数,则变为原数的3倍加1 (3) 重复 (1) (2),直到该数变为1。 编写程序实…

Gradle笔记 二 Gradle的基础Groovy

学习Groovy的必要性 首先Gradle是由Groovy写成的,而且构建脚本的语法都遵循Groovy的语法,所以要学好Gradle的前提是要基本了解Groovy的语法。 Groovy 简介 在某种程度上,Groovy可以被视为Java的一种脚本化改良版,Groovy也是运行在JVM上&am…

什么是微服务?与分布式又有什么区别?

什么是微服务,我们先从传统的单体结构进行了解,对两者进行对比。 单体结构 单体结构是一种传统的软件架构模式,它将应用程序划分为一组相互依赖的模块和组件。这些模块和组件通常都是构建在同一个平台上的,并且紧密耦合在一起。…

本地生活商家想选择靠谱的服务商就这样做,还可以借助批量剪辑来进一步提升营销价值

本地生活商家怎么选择靠谱的服务商? 在抖音本地生活的赛道里,商家除了花精力去搭建自己的团队之外,还可以选择和服务商合作,来实现商单的分发与销售,那么如何和服务商建立合作呢? 今天,来为商…

MG-Soft MIB Browser使用教程

图片 MG-Soft公司是一家老牌的监控工具,是目前全球领先的网络管理,SNMP监控的领导厂商; 我发现很多客户都在使用该软件,比如近期参加的某大型企业招标测试就使用的该软件,该软件比我之前写的ireasoning MIB Browser …

做什么数据表格啊,要做就做数据可视化

是一堆数字更易懂,还是图表更易懂?很明显是图表,特别是数据可视化图表。数据可视化是一种将大量数据转化为视觉形式的过程,通过图形、图表、图像等方式呈现数据,以便更直观地理解和分析。 数据可视化更加生动、形象地…

文件怎么加密丨4种文件加密方法盘点

一 、如何给word文件加密? 1. 打开word,点击“文件”。 2. 点击“信息”,选择“保护文档”,并选择“用密码进行加密”。 3. 在弹出的小窗口,我们可以添加密码,并点击确定即可。 二、如何给excel表格进行加…

什么是数据库?数据库有哪些基本分类和主要特点?

数据库是以某种有组织的方式存储的数据集合。本文从数据库的基本概念出发,详细解读了数据库的主要类别和基本特点,并就大模型时代备受瞩目的数据库类型——向量数据库进行了深度剖析,供大家在了解数据库领域的基本概念时起到一点参考作用。 …

Linux 服务器监控

服务器几乎与任何 IT 基础设施密不可分,Linux 是服务器兼容性最强的开源操作系统,因为它具有灵活性、一致性和安全性。大多数 Linux 服务器都设置了以下 Linux 操作系统的任何变体:Red Hat Enterprise Linux (RHEL)、D…

分享5款有趣的软件,你都知道吗?

​ 今天我想分享几个有趣但或许不那么多人知道的软件,各位喜欢的朋友可以自行下载呢。 1.文本比较软件——Diffchecker ​ Diffchecker是一款在线文本比较软件,可以找出两个文本文件之间的差异。Diffchecker可以比较文本、代码、PDF、Word等多种格式的…

day10-内核实验项目概述与内核信号

1.在系统中什么是信号,都有什么信号 2.在系统接收到信号后,他是如何处理的 3.信号作用 信号处理流程: _system_call: call _sys_call_table(,%eax,4) sys_signal sys_signal int sys_signal(int signum, long handler, long restorer) {/…

打造工业数字基础设施坚实底座,麒麟信安参展2023工业软件生态大会

11月5日,2023工业软件生态大会在深圳揭开帷幕。以“共建新一代工业软件体系,引领制造业高质量发展”为主题,本次大会邀请政府、高校、行业专家和企业代表齐聚一堂,展示工业全产业链前沿技术、创新产品和解决方案,围绕核…

零代码编程:用ChatGPT批量合并文件夹

一个文件夹里面有很多个子文件夹,其中一些是互相配对的,比如: 动物寓言王国_合作力量大 (上)国英语版 动物寓言王国_合作力量大 (下)国英语版 动物寓言王国-狮子与猎狗 (上&#…

出现 Daemons using outdated libraries 的解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 使用apt安装某些包的时候,弹出如下界面: Daemons using outdated libraries的选择框 并问我需要重启的服务,which services should be restarted? 不知什么情况,选择esc之后,所安装的包并没有成功!于是深入剖析 2.…

falsk框架中安装flask-mysqldb报错解决方案

错误示例 我的是py37版本,无法直接安装flask-mysqldb pip install flask-mysqldb报错如下 解决方案 先去第三方库 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 下载mysqlclient 这个是我的版本 mysqlclient-1.4.6-cp37-cp37m-win_amd64.whl 下…

麒麟信安协办 | 2023工业控制系统产业大会隆重举办

11月3日,由中国高科技产业化研究会、湖南省科学技术协会、国防科技大学、湖南大学、中南大学共同主办,工业控制系统产业联盟、长沙经济技术开发区管委会等单位共同承办,麒麟信安等单位协办的“2023 工业控制系统产业大会”在长沙召开。此次会…

中创|多家AI大模型获批上线,“百模”大战已打响,掀起新一轮AI风暴!

9个AI大模型获批上线 “百模”大战已正式打响 拼算法、争数据、卷算力...... 大模型们到底该比拼什么? 它们将给生活和产业变革 带来哪些惊喜和挑战? 今年8月,8家大模型备案通过,百度、字节、智谱华章、商汤、中科院、百川智…

Mach Systems—总线接口转换工具

产品概述 在汽车研发过程中,需要大量的总线数据支持,总线转换工具可以将总线数据转换为我们计算机常见接口,达到总线监视、采集、仿真等目的。MACH SYSTEMS来自于捷克的一家公司,专注于嵌入式和车载网络转换,为LIN、S…

麒麟信安加入“工业操作系统创新伙伴计划”,并亮相2023第三届工控中国大会新品发布会

11月1日-3日,2023第三届工控中国大会在苏州太湖国际会议中心举办。本届大会以“生态链接 智控未来 筑基新型工业化”为主题,由中国电子信息产业发展研究院、中国工业经济联合会、国家智能制造专家委员会、国家产业基础专家委员会、江苏省工业和信息化厅、…