[log]Jenkins使用笔记

2023/11/30 8:40:40

安装

Ubuntu 20.04 + Jenkins 2.375.2 LTS

参考:https://www.jenkins.io/doc/book/installing/linux/#debianubuntu

为了使用docker作为agent,系统需要安装docker,安装方法参考https://docs.docker.com/engine/install/ubuntu/

curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee \
  /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins

安装之后查看服务状态

sudo systemctl status jenkins.service
● jenkins.service - Jenkins Continuous Integration Server
     Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-01-27 10:08:33 CST; 59s ago
   Main PID: 3950 (java)
      Tasks: 49 (limit: 4576)
     Memory: 1.2G
     CGroup: /system.slice/jenkins.service
             └─3950 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080

1月 27 10:08:14 zch-vm-u20 jenkins[3950]: a2708f5d354141dc9b48a239237be542
1月 27 10:08:14 zch-vm-u20 jenkins[3950]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
1月 27 10:08:14 zch-vm-u20 jenkins[3950]: *************************************************************
1月 27 10:08:14 zch-vm-u20 jenkins[3950]: *************************************************************
1月 27 10:08:14 zch-vm-u20 jenkins[3950]: *************************************************************
1月 27 10:08:33 zch-vm-u20 jenkins[3950]: 2023-01-27 02:08:33.310+0000 [id=28]        INFO        jenkins.InitReactorRunner$1#onAttained: Completed initialization
1月 27 10:08:33 zch-vm-u20 jenkins[3950]: 2023-01-27 02:08:33.323+0000 [id=22]        INFO        hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
1月 27 10:08:33 zch-vm-u20 systemd[1]: Started Jenkins Continuous Integration Server.
1月 27 10:08:34 zch-vm-u20 jenkins[3950]: 2023-01-27 02:08:34.601+0000 [id=46]        INFO        h.m.DownloadService$Downloadable#load: Obtained the updated data file >1月 27 10:08:34 zch-vm-u20 jenkins[3950]: 2023-01-27 02:08:34.602+0000 [id=46]        INFO        hudson.util.Retrier#start: Performed the action check updates server s>

这里可以看到Jenkins使用8080作为HTTP服务端口;a2708f5d354141dc9b48a239237be542是初始管理密码,这个密码保存在 /var/lib/jenkins/secrets/initialAdminPassword 文件中,可以随时查看

用浏览器打开 http://127.0.0.1:8080 ,输入 初始管理密码 登录;登录后会提示安装插件,这里选择 推荐插件;插件安装完后会提示创建管理员用户,输入信息保存继续;接下来配置Jenkins URL,这里要用服务器IP或者域名,不要用127.0.0.1,方便后续远程访问,保存完成;接下来就可以用杠杆创建的管理员用户登录Jenkins开始工作了。

安装完成后,jenkins的数据默认保存在/var/lib/jenkins目录下,如果需要修改目录,可以在服务的启动脚本中设置环境变量JENKINS_HOME,不要忘记把/var/lib/jenkins目录的内容复制到你指定的目录,否则需要重新初始化jenkins。

安装docker插件

docker是目前常用的agent,但推荐插件中并没有包含docker插件,需要额外安装一下:
Dashboard -> Manage Jenkins(系统管理) -> 插件管理 -> Available plugins
搜索 docker
选择 Docker Pipeline
点击 Install without restart

jenkins服务运行的用户是jenkins,需要将jenkins用户添加到docker组,以便jenkins有权限操作docker,添加之后重启jenkins服务,使设置生效。

sudo usermod -aG docker jenkins
sudo systemctl restart jenkins

使用Jenkins

不同项目类型的区别

  • Freestyle:传统的多步骤操作,不支持agent
  • Pipeline:支持agent的多stage*多step操作
  • 多配置项目:适合多平台,多配置项目
  • 组织机构目录:可以扫描git库中组织机构目录下的所有项目
  • 多分支流水线:可以自动处理一个库中的多个分支
  • 文件夹:用文件夹来组织,不同文件夹中可以有相同名字的内容

常用的是Pipeline或多分支Pipeline,最大的优点是可以使用 docker 为不同的项目定制不同的编译测试环境,Freestyle由于不能定制编译测试环境,现在已经很少使用了。

Blue Ocean

安装

使用插件管理器安装Blue Ocean插件,安装完成后重启服务器。

使用

Blue Ocean 创建的流水线相当于 多分支流水线
多分支流水线在流水线的分支界面,列表右侧操作栏编辑按钮可以打开图形界面编辑pipeline;在活动界面,点击某次运行查看详情,点击详情页面顶端的编辑按钮也可以打开图形界面编辑pipeline。

问题

目前,我使用的是Jenkins 2.375.2 + Blue Ocean 1.27.1,用github项目没有问题,但使用普通git项目时,创建流水线会卡住,无法创建流水线。
还是建议用经典模式创建多分支流水线,然后可以在Blue Ocean中管理。
但是这里还有个问题,用经典模式创建多分支流水线,就要自己添加一个Jenkinsfile,否则无法用图形界面编辑流水线,而自己添加的Jenkinsfile用图形界面打开时又会报错,我直接把其他项目中用UI生成的Jenkinsfile内容复制过来也是不行,不知道哪里有问题。
总之,这是一次Blue Ocean从入门到放弃的经历,现在Blue Ocean也不做功能更新了,主要想用的pipeline图形生成器不能用,还是老老实实用经典模式吧,有“片段生成器”基本已经足够,参考官方文档,熟练之后编辑Jenkinsfile并不难。


http://www.jnnr.cn/a/259432.html

相关文章

激光在大气中传输特性

地球大气是由干燥的清洁大气,水汽和悬浮在空气中的气溶胶粒子3部分组成,所以大气能见 度主要是受降水,雾以及大气中颗粒物浓度变化所影响。 在光纤通信中,单模光纤在波长1.55μm窗口具有巨大的潜在带宽和极低的损耗&am…

生成标题的节点

生成标题的节点目录概述需求:设计思路实现思路分析1.mine 的概述2 mi是否自动计算未来的处理人参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,w…

【C++】类和对象---什么是类?

目录1.面向过程和面向对象初步认识2.类的引入2.1使用struct定义类3.类的定义3.1类的两种定义方式:3.2成员变量命名规则的建议3.3成员函数与成员变量定义的位置建议4.类的访问限定符及封装4.1访问限定符4.2封装5.类的作用域6.类的实例化7.类对象模型7.1如何计算类对象…

mysql-事务以及锁原理讲解(二)

1、前言 众所周知,事务和锁是mysql中非常重要功能,同时也是面试的重点和难点。本文会详细介绍事务和锁的相关概念及其实现原理,相信大家看完之后,一定会对事务和锁有更加深入的理解。 2、什么是事务 在维基百科中,对事…

MDK配色方案更改

文章目录WIN10更改护眼背景MDK软件配色方案更改设置常用关键字参考WIN10更改护眼背景 按windowsR快捷键,,打开运行,在弹出来的输入框中写上regedit,点确定或回车: 在打开的注册表编辑器中,找到目录&#…

【28】C语言 | 关于指针练习(1)

目录 1、下列输出什么 2、计算求和 3、使用指针打印数组内容 4、打印水仙花数 5、写一个函数,可以逆序一个字符串的内容 6、题目名称:打印菱形 6、喝汽水 7、猜名次 8、下列关于整形数组输出什么并解释 9、下列关于字符数组输出什么并解释 9.1 下列关于字…

人工智能图片素材高清,机器人图片卡通 素材

1、做一个人工智能的ppt需要哪些素材 不能理解你的问题。ppt仅仅是一个做幻灯的软件,可以插入图片、动画、音乐、过场等幻灯的功能,还谈不上有人工智能的能力。人工智能需要有更为强大的类似人脑思维的能力,简单的说人工智能是可以思考的机器…

C语言中数组变量作为函数参数传值的两种方式:数组类型 指针类型 以及“C语言中数组变量(名)的本质是指针变量”

文章目录Intro & SummaryCode & Output运行截图Code关于数组长度在被调函数中的计算错误运行截图 & 警告信息Code数组变量是一类特殊的、指向自己的指针变量Intro & Summary 我在 main 函数中定义了一个数组,要将该数组作为参数传递给其他方法。那…

idea插件restfultool和httpclient

restfultool使用测试controllerRestController RequestMapping("/api") Slf4j public class ApiController {GetMapping("test1")public String test1(RequestParam String msg) {return "hello world " msg;}GetMapping("test2/{msg}&quo…

Makefile学习⑦:编译动态链接库和静态库

Makefile学习⑦:编译动态库和静态库 编译链接动态库 动态链接库名词解释: 动态:运行时才去加载,动态加载 链接:指库文件和二进制程序分离,用某种特殊手段维护两者之间的关系 库 :库文件&#…

MQ相关概念

1) 队列管理器 队列管理器是MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务。 2) 消息 在MQ中,我们把应用程序交由MQ传输的数据定义为消息,我们可以定义消息的内容并对消息进行广义的理解,比如:用户的各种…

算法基础(二):数组知识点及题型讲解

算法基础(二):数组知识点及题型讲解1 数组定义2 Python数组常用操作2.1 创建数组2.2 添加元素2.3 访问元素2.4 更新元素2.5 删除元素2.6 获取数组长度2.7 遍历数组2.8 查找某个元素2.9 数组排序3 力扣题目训练一些算法基础知识点和leetcode题…

机器人中的数值优化之最速下降法

本文ppt来自深蓝学院《机器人中的数值优化》 目录 1 迭代方向 2 步长的选择 3 Armijo condition 4 非精确线搜索的优势 1 迭代方向 梯度方向是函数上升最快的方向,而负梯度方向则是函数下降最快的方向,因此最速下降法就是以负梯度方向为迭代方向…

梦熊杯-十二月月赛-白银组题解-A.自由

A. Problem A.自由(freedom.cpp) 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述: 「蒙德」是「自由」的国度。 巴巴托斯认为,如果一个数的…

如何在 macOS 上安装虚拟机软件 VMware Fusion Player (个人版免费)

文章目录IntroVMware 网站注册事宜安装在 VMware Fusion 中创建虚拟机准备 iso 文件VMware Fusion 主界面Intro VMware 网站注册事宜 需要一个邮箱地址,先注册登陆 VMware。 然后在之后某个页面再次 register ,就是随意填写一些字段:所在公…

【Novel AI】使用绘画AI构建unity游戏资源

请勿在商业用途中使用下面的示例图中的任何资源! 1. 设想: 首先根据自己的设想,创造一些角色原型,角色特点等等 这里我根据网络上找的一些参考,我大概想要的是比较特别的一个警察的猫人形的动物角色; 2…

基于MBD 的软件品质保证技术

基于MBD的软件是什么? 基于MBD的软件是基于模型开发的软件,主要应用于汽车、电子电气、机器人、航空、航天等行业。 ​​​ 与使用现有代码开发程序的方法不同,MBD 方法包括首先开发模型,将模型转换为代码,然后基于转换…

Red Giant Magic Bullet Suite介绍

Red Giant Magic Bullet Suite介绍什么是Magic Bullet SuiteMagic Bullet Suite功能介绍什么是Magic Bullet Suite Magic Bullet Suite是电影制作人不可或缺的一套调色降噪插件,它能够为您制作出和好莱坞一样的效果,为电影制作人提供专业的色彩校正。可…

芯片验证系列——激励(stimulus)

对于芯片验证,主要的挑战在于:1.如何打出所有可能的激励灌给DUT;2.如何在各种可能得激励情况下,判断出不符合硬件描述的行为。本文单单聚焦于一些关于构造stimulus方面的想法吧,结合了红皮书, writing testbench和项目…

力扣OJ(2000+)

目录 2032. 至少在两个数组中出现的值 2037. 使每位学生都有座位的最少移动次数 2042. 检查句子中的数字是否递增 2097. 合法重新排列数对 2180. 统计各位数字之和为偶数的整数个数 2185. 统计包含给定前缀的字符串 2283. 判断一个数的数字计数是否等于数位的值 2287. …
最新文章