码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 持续集成交付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”,下载插件

    (2)安装

    (3)流水线配置

    (4)构建起配置

    (5)控制台输出

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

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

    1. #加双引号,否则会识别成shell里的后台进程&
    2. 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方式

    1. python调取:用postman , add New Request ,code转换python requests
    2. #代码
    3. import requests
    4. url = "http://192.168.204.15:8080/job/buildpipeline/buildWithParameters?token=devops&Version=1.1.8&EnvType=prod"
    5. payload = {}
    6. headers = {
    7. 'Authorization': 'Basic XXXXXXXX' #XXXXXXXX此处应为转换的Base64编码
    8. }
    9. response = requests.request("GET", url, headers=headers, data=payload)
    10. 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)说明

    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 编码后的文本,会比原文本大出三分之一左右。
    2. 选出 64 个字符——大写字母 A-Z、小写字母 a-z、数字 0-9、符号 "+"、"/"(再加上作为垫字的 "=",实际上是 65 个字符,垫字是当生成的 Base64 字符串的个数不是 4 的倍数时,添加在尾部的字符),作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。

    (2)举例

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

    (3)Base64 编码表

  • 相关阅读:
    心理月刊杂志心理月刊杂志社心理月刊编辑部2022年第11期目录
    IDE应用kotlin官方编码规范并配置阿里java开发规约插件
    Unity Mirror学习(一) SyncVars属性使用
    幻兽帕鲁服务器为什么网络连接失败?
    【JavaScript】聊聊js中关于this的指向
    后端统一处理返回前端日期LocalDateTime格式化去T,Long返回前端损失精度问题
    信息检索相关任务及数据集介绍
    手把手教你玩转 Gitea|在 Windows 系统上安装 Gitea
    作业-11.24
    第54节—— redux-toolkit中的configureStore
  • 原文地址:https://blog.csdn.net/cronaldo91/article/details/134263499
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号