当前位置: 首页 > 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实现灰度部署

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

相关文章:

JENKINS(全面)

一.linux系统中JENKINS的安装 注意&#xff1a;安装jenkins需要安装jdk&#xff0c;而且具体版本的jenkins有相对应的jdk版本。可参考以下链接。 Redhat Jenkins 软件包https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/redhat-stable/https://pkg.jenkins.io/r…...

Promise详解大全:介绍、九个方法使用和区别、返回值详解

Promise的介绍 Promise是异步编程的一种解决方案&#xff0c;它的构造函数是同步执行的&#xff0c;then 方法是异步执行的&#xff0c;所以Promise创建后里面的函数会立即执行&#xff0c;构造函数中的resolve和reject只有第一次执行有效&#xff0c;&#xff0c;也就是说Pro…...

尚硅谷爬虫note004

一、urllib库 1. python自带&#xff0c;无需安装 # _*_ coding : utf-8 _*_ # Time : 2025/2/11 09:39 # Author : 20250206-里奥 # File : demo14_urllib # Project : PythonProject10-14#导入urllib.request import urllib.request#使用urllib获取百度首页源码 #1.定义一…...

Debezium系列之:时区转换器,时间戳字段转换到指定时区

Debezium系列之:时区转换器,时间戳字段转换到指定时区 示例:基本配置应用TimezoneConverter SMT的效果示例:高级配置配置选项当Debezium发出事件记录时,记录中的时间戳字段的时区值可能会有所不同,这取决于数据源的类型和配置。为了在数据处理管道和应用程序中保持数据一…...

ubuntu20.04声音设置

step1&#xff1a;打开pavucontrol&#xff0c;设置Configuration和Output Devices&#xff0c; 注意需要有HDMI / DisplayPort (plugged in)这个图标。如果没有&#xff0c;就先选择Configuration -> Digital Stereo (HDMI 7) Output (unplugged) (unvailable)&#xff0c;…...

如何设置Python爬虫的User-Agent?

在Python爬虫中设置User-Agent是模拟浏览器行为、避免被目标网站识别为爬虫的重要手段。User-Agent是一个HTTP请求头&#xff0c;用于标识客户端软件&#xff08;通常是浏览器&#xff09;的类型和版本信息。通过设置合适的User-Agent&#xff0c;可以提高爬虫的稳定性和成功率…...

深度学习框架探秘|TensorFlow:AI 世界的万能钥匙

在人工智能&#xff08;AI&#xff09;蓬勃发展的时代&#xff0c;各种强大的工具和框架如雨后春笋般涌现&#xff0c;而 TensorFlow 无疑是其中最耀眼的明星之一。它不仅被广泛应用于学术界的前沿研究&#xff0c;更是工业界实现 AI 落地的关键技术。今天&#xff0c;就让我们…...

C++:高度平衡二叉搜索树(AVLTree) [数据结构]

目录 一、AVL树 二、AVL树的理解 1.AVL树节点的定义 2.AVL树的插入 2.1更新平衡因子 3.AVL树的旋转 三、AVL的检查 四、完整代码实现 一、AVL树 AVL树是什么&#xff1f;我们对 map / multimap / set / multiset 进行了简单的介绍&#xff0c;可以发现&#xff0c;这几…...

建筑兔零基础自学python记录18|实战人脸识别项目——视频检测07

本次要学视频检测&#xff0c;我们先回顾一下图片的人脸检测建筑兔零基础自学python记录16|实战人脸识别项目——人脸检测05-CSDN博客 我们先把上文中代码复制出来&#xff0c;保留红框的部分。 ​ 然后我们来看一下源代码&#xff1a; import cv2 as cvdef face_detect_demo(…...

【MySQL数据库】Ubuntu下的mysql

目录 1&#xff0c;安装mysql数据库 2&#xff0c;mysql默认安装路径 3&#xff0c;my.cnf配置文件? 4&#xff0c;mysql运用的相关指令及说明 5&#xff0c;数据库、表的备份和恢复 mysql是一套给我们提供数据存取的&#xff0c;更加有利于管理数据的服务的网络程序。下…...

[MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎

#1024程序员节&#xff5c;征文# 目录 一. 数据库概念 0.连接服务器 1. 什么是数据库 口语中的数据库 为什么数据不直接以文件形式存储&#xff0c;而需要使用数据库呢&#xff1f; 总结 二. ??基础操作 三. 主流数据库 四. 基础知识 服务器&#xff0c;数据库&…...

1.从零开始学会Vue--{{基础指令}}

全新专栏带你快速掌握Vue2Vue3 1.插值表达式{{}} 插值表达式是一种Vue的模板语法 我们可以用插值表达式渲染出Vue提供的数据 1.作用&#xff1a;利用表达式进行插值&#xff0c;渲染到页面中 表达式&#xff1a;是可以被求值的代码&#xff0c;JS引擎会将其计算出一个结果 …...

VS2022中.Net Api + Vue 从创建到发布到IIS

VS2022中.Net Api Vue 从创建到发布到IIS 前言一、先决条件二、创建项目三、运行项目四、增加API五、发布到IIS六、设置Vue的发布 前言 最近从VS2019 升级到了VS2022,终于可以使用官方的.Net Vue 组合了,但是使用过程中还是有很多问题,这里记录一下. 一、先决条件 Visual …...

RFID技术在制造环节的应用与价值

在现代制造业中&#xff0c;信息化和智能化已经成为企业提升竞争力的重要手段。RFID技术因其非接触式、远距离和高效识别的特点&#xff0c;广泛应用于生产的多个环节。本文将详细解读生产过程中RFID的关键应用场景&#xff0c;并结合实际案例&#xff0c;展示其为制造业带来的…...

(前端基础)HTML(一)

前提 W3C:World Wide Web Consortium&#xff08;万维网联盟&#xff09; Web技术领域最权威和具有影响力的国际中立性技术标准机构 其中标准包括&#xff1a;机构化标准语言&#xff08;HTML、XML&#xff09; 表现标准语言&#xff08;CSS&#xff09; 行为标准&#xf…...

Linux文件管理:硬链接与软链接

文章目录 1. 硬链接的设计目的&#xff08;1&#xff09;节省存储空间&#xff08;2&#xff09;提高文件管理效率&#xff08;3&#xff09;数据持久性&#xff08;4&#xff09;文件系统的自然特性 2. 软链接的设计目的**&#xff08;1&#xff09;跨文件系统引用****&#x…...

pnpm, eslint, vue-router4, element-plus, pinia

利用 pnpm 创建 vue3 项目 pnpm 包管理器 - 创建项目 Eslint 配置代码风格(Eslint用于规范纠错&#xff0c;prettier用于美观&#xff09; 在 设置 中配置保存时自动修复 提交前做代码检查 husky是一个 git hooks工具&#xff08;git的钩子工具&#xff0c;可以在特定实际执行特…...

在软件产品从开发到上线过程中,不同阶段可能出现哪些问题,导致软件最终出现线上bug

在软件产品从开发到上线的全生命周期中&#xff0c;不同阶段都可能因流程漏洞、技术疏忽或人为因素导致线上问题。以下是各阶段常见问题及典型案例&#xff1a; 1. 需求分析与设计阶段 问题根源&#xff1a;业务逻辑不清晰或设计缺陷 典型问题&#xff1a; 需求文档模糊&#…...

Spring Boot中如何自定义Starter

文章目录 Spring Boot中如何自定义Starter概念和作用1. 概念介绍2. 作用和优势2.1 简化依赖管理2.2 提供开箱即用的自动配置2.3 标准化和模块化开发2.4 提高开发效率2.5 提供灵活的配置覆盖3. 应用场景创建核心依赖1. 确定核心依赖的作用2. 创建 starter-core 模块2.1 依赖管理…...

制作Ubuntu根文件

系列文章目录 Linux内核学习 Linux 知识&#xff08;1&#xff09; Linux 知识&#xff08;2&#xff09; WSL Ubuntu QEMU 虚拟机 Linux 调试视频 PCIe 与 USB 的补充知识 vscode 使用说明 树莓派 4B 指南 设备驱动畅想 Linux内核子系统 Linux 文件系统挂载 QEMU 通过网络实现…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...