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实现灰度部署

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

相关推荐
Wang's Blog26 分钟前
Linux小课堂: 系统监控与进程管理之深入解析 w、ps 与 top 命令
linux·运维·服务器
安卓开发者1 小时前
Docker常用镜像使用指南:从入门到实战
运维·docker·容器
Lenyiin2 小时前
《 Linux 点滴漫谈: 三 》掌控终端:让 Shell 成为你的系统魔杖
linux·运维·服务器·lenyiin
杭州泽沃电子科技有限公司2 小时前
钢铁厂运输设备在线监测:构建智能工厂的安全与效率基石
运维·人工智能·智能监测
Lynnxiaowen2 小时前
今天我们学习python编程常用模块与面向对象
运维·python·学习·云计算
一匹电信狗2 小时前
【MySQL】数据库表的操作
linux·运维·服务器·数据库·mysql·ubuntu·小程序
立昂3 小时前
Linux route
linux·运维
爱吃生蚝的于勒3 小时前
【Linux】深入理解进程(一)
java·linux·运维·服务器·数据结构·c++·蓝桥杯
heisd_13 小时前
使用搭载Ubuntu的树莓派开启热点
linux·运维·ubuntu
我命由我123454 小时前
Spring Cloud - Spring Cloud 微服务概述 (微服务的产生与特点、微服务的优缺点、微服务设计原则、微服务架构的核心组件)
java·运维·spring·spring cloud·微服务·架构·java-ee