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

构建Jenkins 2.340持续集成环境

一、前言

本文学习自:2022版Jenkins教程(从配置到实战) 如有不妥,欢迎指正

二、构建资料

已经包括了本文档使用的所有所需的安装包
在这里插入图片描述

三、安装docker

1、解压docker

docker-20.10.10.tgz

2、复制文件

cp docker/* /usr/bin/

3、编写启动文件

[Unit] 
Description=Docker Application Container Engine 
Documentation=https://docs.docker.com 
After=network-online.target firewalld.service 
Wants=network-online.target  
[Service] 
Type=notify 
# the default is not to use systemd for cgroups because the delegate issues still 
# exists and systemd currently does not support the cgroup feature set required 
# for containers run by docker 
ExecStart=/usr/bin/dockerd 
ExecReload=/bin/kill -s HUP $MAINPID 
# Having non-zero Limit*s causes performance problems due to accounting overhead 
# in the kernel. We recommend using cgroups to do container-local accounting. 
LimitNOFILE=infinity 
LimitNPROC=infinity 
LimitCORE=infinity 
# Uncomment TasksMax if your systemd version supports it. 
# Only systemd 226 and above support this version. 
#TasksMax=infinity 
TimeoutStartSec=0 
# set delegate yes so that systemd does not reset the cgroups of docker containers 
Delegate=yes 
# kill only the docker process, not all processes in the cgroup 
KillMode=process 
# restart the docker process if it exits prematurely 
Restart=on-failure 
StartLimitBurst=3 
StartLimitInterval=60s 
[Install] 
WantedBy=multi-user.target
vim /etc/systemd/system/docker.service 

4、授权

chmod +x /etc/systemd/system/docker.service

5、重载

systemctl daemon-reload

6、启动docker

systemctl start docker

7、设置开机自启

systemctl enable docker.service

8、设置阿里云镜像

vim  /etc/docker/daemon.json   #填入下面内容
{
"registry-mirrors": ["https://1tschl8w.mirror.aliyuncs.com"]
}

9、重载

systemctl daemon-reload

10、重启

systemctl restart docker

四、安装Gitlab

1. 官网 : 安装私有化部署版极狐GitLab

如果事先导入了镜像(镜像文件在开头的资料中有)

docker run -d --hostname 192.168.44.146 --publish 443:443 --publish 80:80 --name gitlab --restart always -v /opt/gitlab/config:/etc/gitlab -v /opt/gitlab/log:/var/log/gitlab -v /opt/gitlab/data:/var/opt/gitlab --shm-size 256m 82d3d2e0547d

没有镜像

docker run -d \
--hostname 192.168.44.146 \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume /opt/gitlab/config:/etc/gitlab:Z \
--volume /opt/gitlab/logs:/var/log/gitlab:Z \
--volume /opt/gitlab/data:/var/opt/gitlab:Z \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest

查看初始密码(进入容器中查看)

cat /etc/gitlab/initlal_root_password
24小时有效
账号 root  密码 b0X/oOKySLpk+CS7bbqXxUsHOnVAvb7ihkhdPOo=

安装完成后需要等待一段时间,第一次启动比较慢,如果遇到提示502,是正常的,还需要等待一下

访问

ip:80

五、安装jenkins

1. 安装java环境和maven环境(资料在开头的资料中有)

编辑文件

vim /etc/profile
export MAVEN_HOME=/opt/apache-maven-3.6.3
export PATH=${PATH}:${MAVEN_HOME}/binexport JAVA_HOME=/usr/local/java/jdk1.8.0_212
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin

1. 启动jenkins(资料在开头的资料中有)

nohup java -jar jenkins.war &

初始登录账号和密码在启动日志中有打印
在这里插入图片描述

1.1 访问

ip:8080

1.2 因为是后面补的,所以本来还有插件安装的,可以直接看开头的b站连接

2. 场景一: 部署后端SpringBoot服务

2.1 jenkins服务器配置java环境(配置方法不在讲述)
2.2 jenkins服务器配置maven环境(配置方法不在讲述)
2.3 jenkins系统配置maven

【系统管理】-【全局工具配置】
在这里插入图片描述
找到maven,点击添加,配置maven的家目录
在这里插入图片描述

2.4 创建任务,首页点击创建任务

在这里插入图片描述
在这里插入图片描述

2.5 配置任务保存期限和个数

在这里插入图片描述

2.6 配置git地址

源码管理,选择git,注意,只要git地址和凭证没问题,图中错误会自动消失
在这里插入图片描述
配置git凭证,点击凭证下“添加”,添加完成后就可在上方选择到
在这里插入图片描述

在这里插入图片描述

2.7 配置构建环境
  • 我的配置是,maven打包完成后,将jar包发送至另外的一台服务器,并执行脚本启动
    在这里插入图片描述
  • 上图中可看到,这里需要添加一个SSH服务,此时,需要到系统配置中先配置SSH服务,我们找到【系统管理】-【系统配置】–一直往下划找到Publish over SSH
  • 在这里插入图片描述
    在这里插入图片描述
  • 配置完成后,最下方可点击测试,出现success则为配置成功!

在这里插入图片描述* 配置完成后,我们回到任务配置界面,配置构建环境,此时,我们在这里应该可以选择到刚才我们配置的ssh服务在这里插入图片描述

  • 配置说明
    (1)Source files: 指的是你需要传输的文件的位置,这里就是我们需要传输的jar包的位置,他是基于你的任务中间路径来的,举个例子:当你创建了一个叫demo的任务,执行过后(没执行时不会有)会在服务器的/root/.jenkins/workspace/ 目录下,新建一个demo的文件夹,里面存放了你的git拉取的项目,比如我的项目

在这里插入图片描述
我们的任务是demo,maven打包后,我们的jar包路径为demo/target/aaa.jar ,那么,我们的Source files配置为target/*.jar(或者直接写target/aa.jar)就行
(2)Remove prefix:下图的翻译结果说的很明白了,比如我们的jar路径配置为target/aa.jar,这样,执行任务后,会在远程服务器上生成target目录,下面才是我们的jar包,如果我们不需要target目录,则Remove prefix直接配置target
在这里插入图片描述
*
在这里插入图片描述

(3)Remote directory:目标文件夹配置,也就是你的jar包需要传递到目标服务器的哪个目录下,这里有个也不叫坑的东西,就是我们前面步骤中配置了SSH服务,他的默认路径是/root, 也就是说,我们这里如果配置了比如: /opt/demo ,那么,远程SSH服务器上会生成 /root/opt/demo 的文件路径,也就是翻译中说的“此文件夹将位于全局配置中的文件夹(如果存在)下”。这个全局配置中的文件夹默认不配置就是/root。如果你全局配置了/opt ,而你的部署路径要在/opt/demo/下,则Remote directory只需要配置/demo即可。

全局配置在这里
在这里插入图片描述

在这里插入图片描述
(4)Exec command:简单来说,就是你把jar传过去后,要做什么,那么我们这里,当然是启动jar包了,我这里是在远程服务器的目录下创建了启动脚本,直接执行即可,你也可以将你的启动脚本放到项目里面, 和jar包压缩后一起传过去,也可以在添加一个Transfer Set,先把命令传过去,再把jar传过去,最后执行脚本。
在这里插入图片描述
在这里插入图片描述

2.8 至此配置完成,如果你的启动脚本没问题,将实现 git拉取代码、编译打包、传输到另外的服务器,启动这一整条流程。

相关文章:

构建Jenkins 2.340持续集成环境

一、前言 本文学习自:2022版Jenkins教程(从配置到实战) 如有不妥,欢迎指正 二、构建资料 已经包括了本文档使用的所有所需的安装包 三、安装docker 1、解压docker docker-20.10.10.tgz2、复制文件 cp docker/* /usr/bin/3、编写启动文…...

Ubuntu/Centos下OpenJ9 POI输出Excel的Bug

项目更换 JDK为 OpenJ9 后, 使用 POI 导出 Excel 遇到的问题 OpenJ9 版本信息 /opt/jdk/jdk-11.0.178/bin/java -version openjdk version "11.0.17" 2022-10-18 IBM Semeru Runtime Open Edition 11.0.17.0 (build 11.0.178) Eclipse OpenJ9 VM 11.0.17.0 (build …...

链接脚本学习笔记

IAR 一般步骤 链接器用于链接过程。它通常执行以下过程(请注意,某些步骤可以通过命令行选项或链接器配置文件中的指令关闭): 1.确定应用程序中要包含哪些模块。始终包含对象文件中提供的模块。仅当库文件中的模块为从包含的模块…...

NLP顶会近三年小众研究领域

ACL 2022 编码器和解码器框架、自然语言生成、知识i神经元、抽取式文本摘要、预训练语言模型、零样本神经机器翻译等。 2021 新闻标题生成任务等。跨语言命名实体识别、代码搜索、音乐生成、Hi-Transformer、预训练语言模型、语义交互等。 EMNLP 2021 代码摘要生成、隐私…...

[electron] 一 vue3.2+vite+electron 项目集成

一 开发环境系统:windows开发工具: git , vscode,termial环境依赖: node, npm 二 步骤2.1 通过vite 创建vue项目通过 终端执行命令,选择 模板 vuenpm init vite cd 项目目录 npm install npm run dev2.2 集成 electro…...

ESP32 Arduino(十二)lvgl移植使用

一、简介LVGL全程LittleVGL,是一个轻量化的,开源的,用于嵌入式GUI设计的图形库。并且配合LVGL模拟器,可以在电脑对界面进行编辑显示,测试通过后再移植进嵌入式设备中,实现高效的项目开发。SquareLine Studi…...

js一数组按照另一数组进行排序

有时我们需要一个数组按另一数组的顺序来进行排序,总结一下方法,同时某些场景也会用到。 首先一个数组相对简单的情况: var arr1 [52,23,36,11,09]; var arr2 [23,09,11,36,52]; // 要求arr1按照arr2的顺序来排序,可以看到两个…...

JavaScript 类继承

JavaScript 类继承是面向对象编程的一个重要概念,它允许一个类从另一个类继承属性和方法。通过使用继承,可以避免代码重复,并可以在现有类的基础上扩展新功能。 在 JavaScript 中,您可以使用关键字 extends 来实现类继承。例如&a…...

MySQL相关面试题

文章目录union 和 unionAll 的区别?drop、delete与truncate的区别 ?sql 语句如何优化 ?什么是事务 ?事务的四个特性(ACID) ?事务的隔离级别?索引主要有哪几种分类 ?什么时候适合添加索引&#x…...

Python创意作品说明怎么写,python创意编程作品集

大家好,小编来为大家解答以下问题,Python创意作品说明怎么写,python创意编程作品集,现在让我们一起来看看吧! 1、有哪些 Python 经典书籍 书名:深度学习入门 作者:[ 日] 斋藤康毅 …...

icomoon字体图标的使用

很久之前就学习过iconfont图标的使用,今天又遇到一个用icomoon字体图标写的案例,于是详细学习了一下,现整理如下。 一、下载 1.网址: https://icomoon.io/#home 2.点击IcoMoon App。 3.点击 https://icomoon.io/app 4.进入IcoM…...

Java · 常量介绍 · 变量类型转换 · 理解数值提升 · int 和 Stirng 之间的相互转换

书接上回 Java 变量介绍 我们继续学习以下内容. 四、常量字面值常量final 关键字修饰的常量五、理解类型转换int 和 long/double 相互赋值int 和 boolean 相互赋值int 字面值常量给 byte 赋值强制类型转换类型转换小结六、理解数值提升int 和 long 混合运算byte 和 byte 的运算…...

JVM从跨平台到跨专业 Ⅲ -- 类加载与字节码技术【下】

文章目录编译期处理默认构造器自动拆装箱泛型集合取值可变参数foreach 循环switch 字符串switch 枚举枚举类try-with-resources方法重写时的桥接方法匿名内部类类加载阶段加载链接初始化相关练习和应用类加载器类与类加载器启动类加载器拓展类加载器双亲委派模式自定义类加载器…...

ucore的字符输出

ucore的字符输出有cga,lpt,和串口。qemu模拟出来显示器连接到cga中。 cga cga的介绍网站:https://en.wikipedia.org/wiki/Color_Graphics_Adapter cga是显示卡,内部有个叫6845的芯片。cga卡把屏幕划分成一个一个单元格,每个单元格显示一个a…...

【ESP 保姆级教程】玩转emqx数据集成篇① ——认识数据集成

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-02-10 ❤️❤️ 本篇更新记录 2023-02-10 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…...

PMP报考条件?

PMP已经被认为是项目管理专业身份的象征,项目经理人取得的重要资质。 PMP考试一般每年在中国大陆地区,会进行四次考试,今天就来详细说一说PMP考试的时间线。 01考试时间PMP考试在中国大陆一年开展四次,分别在每年的3月、6月、9月…...

Vite+Vue3实现版本更新检查,实现页面自动刷新

ViteVue3实现版本更新检查,实现页面自动刷新1、使用Vite插件打包自动生成版本信息2、Vite.config.ts配置3、配置环境变量4、路由配置现有一个需求就是实现管理系统的版本发版,网页实现自动刷新页面获取最新版本 搜索了一下,轮询的方案有点浪费…...

LeetCode刷题模版:292、295、297、299-301、303、304、309、310

目录 简介292. Nim 游戏295. 数据流的中位数297. 二叉树的序列化与反序列化【未理解】299. 猜数字游戏300. 最长递增子序列301. 删除无效的括号【未理解】303. 区域和检索 - 数组不可变304. 二维区域和检索 - 矩阵不可变309. 最佳买卖股票时机含冷冻期310. 最小高度树【未理解】…...

20、CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别

CSS中的px 和 % px (pixels) 是固定单位,也可以叫基本单位,代表像素,可以确保元素的大小不受屏幕分辨率的影响。 % (percentage) 是相对单位,代表元素大小相对于其父元素或视口(viewport)的大小的百分比。使用百分比可…...

第五节 字符设备驱动——点亮LED 灯

通过字符设备章节的学习,我们已经了解了字符设备驱动程序的基本框架,主要是掌握如何申请及释放设备号、添加以及注销设备,初始化、添加与删除cdev 结构体,并通过cdev_init 函数建立cdev 和file_operations 之间的关联,…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

小木的算法日记-多叉树的递归/层序遍历

🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...

Java后端检查空条件查询

通过抛出运行异常&#xff1a;throw new RuntimeException("请输入查询条件&#xff01;");BranchWarehouseServiceImpl.java // 查询试剂交易&#xff08;入库/出库&#xff09;记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...

简单介绍C++中 string与wstring

在C中&#xff0c;string和wstring是两种用于处理不同字符编码的字符串类型&#xff0c;分别基于char和wchar_t字符类型。以下是它们的详细说明和对比&#xff1a; 1. 基础定义 string 类型&#xff1a;std::string 字符类型&#xff1a;char&#xff08;通常为8位&#xff09…...

使用 uv 工具快速部署并管理 vLLM 推理环境

uv&#xff1a;现代 Python 项目管理的高效助手 uv&#xff1a;Rust 驱动的 Python 包管理新时代 在部署大语言模型&#xff08;LLM&#xff09;推理服务时&#xff0c;vLLM 是一个备受关注的方案&#xff0c;具备高吞吐、低延迟和对 OpenAI API 的良好兼容性。为了提高部署效…...

ABB馈线保护 REJ601 BD446NN1XG

配电网基本量程数字继电器 REJ601是一种专用馈线保护继电器&#xff0c;用于保护一次和二次配电网络中的公用事业和工业电力系统。该继电器在一个单元中提供了保护和监控功能的优化组合&#xff0c;具有同类产品中最佳的性能和可用性。 REJ601是一种专用馈线保护继电器&#xf…...