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

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

相关推荐
Nie_Xun28 分钟前
ubuntu网络共享
linux·运维·ubuntu
天上掉下来个程小白1 小时前
Docker-14.项目部署-DockerCompose
运维·docker·微服务·容器
花小璇学linux1 小时前
imx6ull-驱动开发篇22——Linux 时间管理和内核定时器
linux·运维·驱动开发
Liang_GaRy4 小时前
心路历程-三个了解敲开linux的大门
linux·运维·服务器
星霜笔记5 小时前
Docker 部署 MariaDB+phpMyAdmin+Nextcloud 完整教程
运维·数据库·docker·容器·mariadb
一只栖枝8 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
wuicer10 小时前
ubuntu 20.04 安装anaconda以及安装spyder
linux·运维·ubuntu
小晶晶京京12 小时前
day34-LNMP详解
linux·运维·服务器
fengyehongWorld12 小时前
Linux crontab定时任务
linux·运维
碎像13 小时前
Linux上配置环境变量
linux·运维·服务器