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

JENKINS(全面)

一.linux系统中JENKINS的安装

注意:安装jenkins需要安装jdk,而且具体版本的jenkins有相对应的jdk版本。可参考以下链接。

Redhat Jenkins 软件包https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/

jenkins的安装也可以去jenkins的官网,官网有安装手册

我的系统配置   2核cpu  8G 内存  40G磁盘

Linux的https://www.jenkins.io/doc/book/installing/linux/https://www.jenkins.io/doc/book/installing/linux/https://www.jenkins.io/doc/book/installing/linux/https://www.jenkins.io/doc/book/installing/linux/https://www.jenkins.io/doc/book/installing/linux/https://www.jenkins.io/doc/book/installing/linux/https://www.jenkins.io/doc/book/installing/linux/https://www.jenkins.io/doc/book/installing/linux/https://www.jenkins.io/doc/book/installing/linux/这里安装的是比较新版本的jenkins

sudo wget -O /etc/yum.repos.d/jenkins.repo  https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install fontconfig java-17-openjdk
sudo yum install jenkins
sudo systemctl daemon-reload

安装好之后启动jenkins,但是我的这个systemctl start jenkins是有问题的(可以去看一下jenkins的service文件。这里不细说)

所以我直接使用命令启动jenkins

/usr/bin/jenkins  

然后它会一直在前端运行,按ctrl+c 就能终止jenkins

或者放到后台执行

nohup /usr/bin/jenkins &>/dev/null &

然后登陆http://<jenkins服务ip>:8080

加载插件。以前是这个插件没有加载成功就进不去,但是我今天插件还没有完全下载好。有两个插件没有安装好也能进入主页面了。进去之后输入初始密码然后再配置一个新账号(超级用户)

登陆的初始密码

二.安装插件的方法

可以参考管理插件https://www.jenkins.io/doc/book/managing/plugins/https://www.jenkins.io/doc/book/managing/plugins/https://www.jenkins.io/doc/book/managing/plugins/https://www.jenkins.io/doc/book/managing/plugins/https://www.jenkins.io/doc/book/managing/plugins/https://www.jenkins.io/doc/book/managing/plugins/https://www.jenkins.io/doc/book/managing/plugins/https://www.jenkins.io/doc/book/managing/plugins/https://www.jenkins.io/doc/book/managing/plugins/

jenkins插件的存放位置

1.首先可以去康康这个里面,这个里面是可用可直接下载的插件。可以先在这里康康能不能直接把刚刚缺少的插件下载安装

我刚进去的时候,这个里面有你刚刚初始化的时候没有装好的插件

2.如果web界面下载失败,可以先直接下载到本地,然后传到/root/.jenkins/plugins下

去网站下

Jenkins Pluginshttps://plugins.jenkins.io/

输入你想下载的插件

选择要安装的版本点击即会下载到本地

上传

三、jenkins相关

1.邮箱配置 系统管理的系统配置里  前面 这三个邮箱要一样

2.远程拉取代码

1)直接克隆

从gitlab上拉取代码到jenkins然后,由jenkins部署到web上

*就是jenkins像我这样安装的时候默认启动服务的用户是jenkins,jenkins很多权限都没有,所以要更改启动jenkins服务的用户,改成root。

find / -name "jenkins.service"

vim path/jenkins.service

User=jenkins

Group=jenkins

ssh-keygen -t rsa -b 4096 -C "3515694112@jenkins"
ssh-copy-id root@<web.ip>

在jenkins生成私钥公钥后

把公钥放到gitlab上

私钥放到jenkins的

2)配置拉取

这里插入一下

Jenkins 用户配置文件

这个文件记录了jenkins插件的更新源

3.jenkins构建触发器

触发器一般在测试环境中使用,当gitlab中的代码发生变化的时候,gitlab会主动触发jenkins,然后执行相关服务代码的重新上线。

老版本是使用插件,但是新版本使用插件已经没有用了。

构建触发器(不安装插件)

可以自己生成一个随机token

openssl rand -hex 12(随机的 12 字节的十六进制字符串)

然后触发任务脚本执行

4.pipline的使用

我觉得pipline是把任务模块化了,而脚本是直接执行一整个大任务

流水线语法https://www.jenkins.io/zh/doc/book/pipeline/syntax/

下面是一个简单的pipline script

pipeline {agent any //这个设置,可以在stage中设置哪个jenkins执行(master,slave) 更灵活stages {stage('change dir') {steps {dir('/jenkins') {// some block}}}stage('shell script') {steps {sh '''echo "I love you"'''}}}
}

还可以把pipline scripts传到gitlab上去然后clone一下执行(pipline声明式)

5.jenkins的分布式

如果jenkins的服务负载很高,单个是无法承载的,就要分布式

Jenkins slave 要安装jdk

mkdir /var/lib/jenkins #jenkins相关数据路径

推荐slave的工作目录和master的工作目录一样的路径,因为后面执行脚本啥的方便

jenkins master会以ssh的方式连接jenkins slave ,具体就不说了。有需要的同学call我吧,实在懒得截屏

脚本路径是jenkins在gitlab中的路径

可以把Jenkinsfile上传到gitlab上,然后jenkins从gitlab上拉取

代码质量测试

jenkins实现灰度部署

灰度部署就是对于要更新的服务,我们先对后端服务器的一部分进行更新,然后等到确定这个更新后的服务也能稳定运行之后在陆续更新全部的服务器

http://www.lryc.cn/news/537796.html

相关文章:

  • Promise详解大全:介绍、九个方法使用和区别、返回值详解
  • 尚硅谷爬虫note004
  • Debezium系列之:时区转换器,时间戳字段转换到指定时区
  • ubuntu20.04声音设置
  • 如何设置Python爬虫的User-Agent?
  • 深度学习框架探秘|TensorFlow:AI 世界的万能钥匙
  • C++:高度平衡二叉搜索树(AVLTree) [数据结构]
  • 建筑兔零基础自学python记录18|实战人脸识别项目——视频检测07
  • 【MySQL数据库】Ubuntu下的mysql
  • [MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
  • 1.从零开始学会Vue--{{基础指令}}
  • VS2022中.Net Api + Vue 从创建到发布到IIS
  • RFID技术在制造环节的应用与价值
  • (前端基础)HTML(一)
  • Linux文件管理:硬链接与软链接
  • pnpm, eslint, vue-router4, element-plus, pinia
  • 在软件产品从开发到上线过程中,不同阶段可能出现哪些问题,导致软件最终出现线上bug
  • Spring Boot中如何自定义Starter
  • 制作Ubuntu根文件
  • SpringBoot快速接入OpenAI大模型(JDK8)
  • UniApp 中制作一个横向滚动工具栏
  • react中如何获取真实的dom
  • 5G与物联网的协同发展:打造智能城市的未来
  • 【Qt】实现定期清理程序日志
  • git bisect 使用二分法查找引入错误的提交
  • 一种面向车载时间敏感网络的联合路由与时隙调度负载均衡算法
  • 【弹性计算】容器、裸金属
  • Golang关于结构体组合赋值的问题
  • DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗?
  • 新建github操作