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

目录

一、实验

1.Jenkins Pipeline本地构建触发器

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

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

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

二、问题

1.pipeline插件依赖安装报错

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

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

4.Base64编码如何构成


一、实验

1.Jenkins Pipeline本地构建触发器

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

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第1张图片

(2)安装

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第2张图片

(3)流水线配置持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第3张图片

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第4张图片

(4)构建起配置

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第5张图片

(5)控制台输出

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第6张图片

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)开始远程构建持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第7张图片

(4)构建成功持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第8张图片

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

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

用postman  , add New Request 

(2)postman 添加request

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第9张图片

(2)postman自动生成持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第10张图片

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

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第11张图片

(4) 添加账户及密码

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第12张图片

(5)点击send发送持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第13张图片

(6)开始远程构建

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第14张图片

(7)控制台查看持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第15张图片

(8)远程构建完成持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第16张图片

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代码

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第17张图片

(3)python运行

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

python代码

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第18张图片

(4)开始远程构建

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第19张图片

(5)远程构建中

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第20张图片

(6)远程构建完成

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第21张图片

二、问题

1.pipeline插件依赖安装报错

(1) 报错

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第22张图片

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第23张图片

(2)原因分析

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

(3)解决方法

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

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第24张图片

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第25张图片

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

(1)报错

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第26张图片

(2)原因分析

环境名重复

(3)解决方法

修改环境名

修改前:

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第27张图片

修改后:

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第28张图片

成功:

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第29张图片

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

(1)问题

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

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第30张图片第二个job 对应一个/var/lib/jenkins/workspace/buildpipeline@2

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第31张图片

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

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第32张图片

(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 编码表

持续集成交付CICD:Jenkins Pipeline与远程构建触发器_第33张图片

你可能感兴趣的:(ci/cd,jenkins,linux)