【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】
一、通过虚拟机搭建Linux环境-CnetOS
1、安装virtualbox,和Vmware是一样的,只是box更轻量级
1)需要注意内存选择,4G+
2、启动完成后,需要获取服务器IP地址
命令
ip add 

服务器IP地址

通过本地的工具,进行连接到服务器
1)自带的
输入ssh命令,能打印说明在正常的

如果没有的话,需要下载ssh工具包

在登录之后,就进入到用户的系统了,不再是在C盘里了
 2)外部的,例如Xshell
 
端口号默认22,ip是服务器ip

需要看项目运行在什么环境下,需要提供相关的技术文档或着部署文档。安装JDK、Jenkins这种操作都会。
二、在LInux下安装java环境--JDK--11版本
1、下载JDK-11

linux要安装tar.gz这种压缩包

2、JDK文件上传到Linux系统的文件里
1)通过工具直接拖动
2)通过命令的方式
 先创建文件夹 /user/java,用于存放jdk,再进入这个目录
通过命令,上传jdk文件
 上传进度100%后,查看这个目录下的明细,有这个压缩包了

下一步是操作解压
 执行上面这个命令

 
再查看这个目录,就能看到了
 3、配置环境变量
 

按下面的命令

1)先打开jdk所在的文件路径
cd /user/java

2) 然后编辑profile
vi /etc/profile
3)把java_home的环境变量信息粘贴到最末尾

然后按住Esc 就可以退出编辑模式,然后:wq就可以写的保存了 。回车后,再cat查看一下是否保存成功

能看到填写的数据
4) 然后让环境变量生效

输入这个命令

然后再查看 java --version

或着是输入javac 能显示很多信息,就证明java环境已经ok
三、在LInux下安装python环境
1、centos自带了python2.7.5,输入python-V,即可验证查看自带的。这个不能删除,因为有一些依赖这个的

2、我们需要给安装python3的环境

1)首要条件:虚拟机一定要ping通外网
 2)然后安装依赖环境
 
--安装依赖环境这个依赖python2,所以上面的2.7不能删

直接给粘贴上,回车即可
 等待安装完成即可

3)下载并安装python3的安装包
(推荐使用这种方式下载)普通下载地址:Index of /ftp/python/3.9.15/
也可以通过命令的方式进行下载(虽然方便,但是速度较慢)
wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz 
4)将python3的安装包和jdk安装包一样,通过命令的方式上传到服务器
4.1)先创建一个目录,放python3 的包
在xshell里

4.2)本地进行上传
在cmd里

4.3)查看上传内容

4.4)依次执行如下命令
 
4.4.1) 先解压
4.4.2)查看解压后内容

4.4.3)进入到解压目录,安装2个依赖包

第一个
-y 是在安装过程中,有很多确认动作,-y表示自动全程yes

4.4.4) 编译和安装


4.4.5)制定编译规则

 

Linux之所以可以通过命令驱动,是因为所有命令都被存储在usr/bin下,打开bin会看到各种命令


5)创建关联

5.1)打开bin目录


可以查看python3的信息,只有在bin目录下执行./python3的命令才有效

5.2)创建软连接

 
执行完之后,查看bin目录,里面应该增加 python3

6)配置环境变量
依次执行下面的命令

 通过在根目录输入python3 可以查看到信息,就说明都成功了
四、在Linux下安装Jenkins
1、Xshell先创建存放的目录

2、CMD上传文件

上传完成

打开Xshell,查看文件明细,有这个包

3、 直接搞一套新的Jenkins
命令方式
命令直接执行:java-jarjenkins.war --生成一个新的jenkins。
4、复用电脑上之前已经安装好的
4.1)先找到电脑上之前已经安装好的

4.2)先要把这个文件进行压缩,然后上传到Linux上再解压,避免权限问题
 
4.3)然后去xshell查看文件
.开头的文件是隐藏文件,ls不能查看

4.4)需要通过ls -a来查看
a就是隐藏文件的意思
-a选项是ls命令的一个参数,它的含义是显示所有文件,包括隐藏文件(以点号.开头的文件或目录)。 

4.5)解压zip包
unzip命令首先是在系统中没有的,这时需要下载并安装这个命令

4.6)使用解压这个命令
unzip jenkins.zip -d ~ 

要给解压到home目录下

4.7) 解压完成,查看

5、运行Jenkins
前台启动命令:java-jar jenkins.war
前台启动,一旦Ctrl + C 就会把服务给停掉
需要使用后台启动命令
nohup -jar jenkins.war 是启动命令
>jenkins.log 是日志打到这个文件里
2>&1& 是固定写法
nohup -jar jenkins.war >jenkins.log 2>&1& 

这是一条Linux命令,用于在后台运行Java应用程序,并将标准输出和标准错误都重定向到一个日志文件中。下面是对各部分的解释:1. `nohup`:这个命令用于在你退出登录(比如关闭SSH连接)后继续运行进程。它的主要作用是使得进程不受HUP(hang up)信号的影响,防止进程因为终端关闭而被强制结束。2. `-jar jenkins.war`:这个部分表示要运行一个Java应用程序,具体来说是Jenkins的WAR文件。`-jar`选项告诉Java虚拟机(JVM)从指定的JAR文件中加载并执行应用程序。3. `>jenkins.log`:这部分将标准输出(stdout)重定向到一个名为`jenkins.log`的文件中。如果文件不存在,系统会自动创建它;如果文件已存在,系统会覆盖原有的内容。4. `2>&1`:这个部分将标准错误(stderr)也重定向到标准输出(stdout),然后再与上一步骤的`>jenkins.log`结合起来,实际上是将标准错误和标准输出都重定向到同一个日志文件`jenkins.log`中。5. `&`:最后一个`&`符号表示将整个命令放入后台运行,允许你在同一终端窗口中执行其他命令,而不必等待这个命令完成。总的来说,这条命令的作用是启动Jenkins服务器,并将所有的输出(包括标准输出和标准错误)都记录到`jenkins.log`文件中,方便日后查看和调试。同时,由于使用了`nohup`和`&`,即使你退出了SSH连接,Jenkins服务器也会继续在后台运行。 
执行完


6、关闭防火墙

如何关闭,需要执行三个命令

首先停掉防火墙
 关闭防火墙

查看关闭状态
 灰色
 7、访问Jenkins
 
复用的话,账号密码就是复用 那个

可以复用电脑之前安装好的Jenkins的配置,不需要重复配置服务

五、Linux下安装 Gogs +Git应用
1、正常在官网下载即可-gz的包

2、新建文件存放Gogs

3、在CMD上传文件

4、查看上传的文件

5、解压 上传的文件包

6、启动Gogs服务
后台启动
nohup./gogsweb>gogs.log2>&1& 
 需要进入到gogs的目录,再执行启动命令,才能启动
否则会一直无法启动
7、访问虚拟机的IP+端口
不要立即安装注册,还需要修改一些内容

8、修改Gogs服务配置

0)前置条件:需要安装Git,
前置条件:需要安装Git,否则最后安装Gogs会提示无法识别Git命令
通过命令安装Git即可
yum install git -y 

1)选择数据库类型

2)配置虚拟机ip

3)配置运行系统用户

4)创建管理员账号
创建的账号用于后面账号登录
 
5)点击安装
如果没有安装Git的话,会提示这个

安装完Git,就可以成功安装

9、创建仓库
创建仓库名

创建完,查看这个空仓库
然后需要根据提示的命令,进行一系列创建真实的仓库

1)初始化空仓库

2)上传文件

提示不能上传,因为没有这个文件
 执行提示无这个文件,换CMD去执行这个命令
在要执行的文件路径里输入cmd的路径,回车即可,会直接打开这个目录的路径



搞完上面,再上传文件,继续执行上传命令
 
3)框架提交

4)建立远程连接
执行蓝色的命令即可


5)最后push代码


6)输入Gogs的账号和密码
上面执行push命令,会弹出,需要输入这个地址的账号和密码。需要输入Gogs的账号和密码

刷新,可查看提交的代码

10、在Jenkins里面拉取代码
配置-源码管理
把代码仓库的地址放进去,会报错

正常情况应该如下,下面是解决方案

1、复用Jenkins需要改Jenkins的配置来解决复用的问题:

1)进入到配置里面

2)进入到管理里面

3)修改git

进行保存即可

修改完后,发现代码仓库的地址不报错了

2、管理远程连接地址
1)添加新的钩子

2)配置钩子
获取token
 配置服务器的ip

保存发现报错

需要执行下面的命令,需要在gogs的路径下执行命令~

【自己的路径 】就是 gogs所在的路径,


添加到最后一行,再保存

3)需要先终止服务,再重启

 
不需要,任意路径均可执行查找进程的命令
先安装命令

然后再 执行查看端口对应的进程
5021是进程id

然后kill 进程后,再重启服务,就ok,这时Jenkins就可以拉取仓库的代码了
3、配置Jenkins执行的命令


需要删除掉windows命令
 配置的命令:

配置效果

然后需要清除一下之前windows下执行的工作空间

11、生成测试报告
1)修改配置
需要修改为服务器的ip

2)之所以能运行allure,是因为这个包

在linux中,需要把上面这个删除。然后再新增一个
选好版本,会自动安装插件。
如果还是想用本地的,就需要把那个本地的包上传到Linux系统,操作一样

2.1)本地上传的操作
cmd上传到服务器。因为这个包本身是在windows下的,所以要使用cmd上传到Linux虚拟机的服务器上

2.2)在Xshell上查看是否上传成功,并解压到当前目录
./表示当前目录
 解压完,可以看到解压后的

复制当前路径。只到这个路径就可以了,不需要再深一层到bin目录
 
配置到Jenkins上

12、项目修改
 
下面标注注释掉的,就是指那个需要删除掉的
 修改urllib3的版本

13、企业通知和邮件报告,是不需要修改的

问题:
1、
 
如果linux部署在云服务器,和本地windows是不通的,不能通信。
在本机安装Linux,和本地的windows,相当于内网,是可以通的。
问题2:构建后拿不到对应的allure的包

相关文章:
【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】
一、通过虚拟机搭建Linux环境-CnetOS 1、安装virtualbox,和Vmware是一样的,只是box更轻量级 1)需要注意内存选择,4G 2、启动完成后,需要获取服务器IP地址 命令 ip add 服务器IP地址 通过本地的工具,进…...
mvcc 速读
MVCC(Multi-Version Concurrency Control,多版本并发控制)是MySQL中一种用于实现数据库并发控制的方法,尤其在InnoDB存储引擎中得到了广泛应用。它的主要作用是提高数据库在高并发场景下的性能,并确保数据的一致性。 …...
美容仪维修过程记录
近期维修的家用射频美容仪,发一些维修过程的拆机图片...
STM32入门开发操作记录(一)——新建工程
目录 一、课程准备1. 课程资料2. 配件清单3. 根目录 二、环境搭建三、新建工程1. 载入器件支持包2. 添加模块3. ST配置4. 外观设置5. 主函数文件 一、课程准备 1. 课程资料 本记录操作流程参考自b站视频BV1th411z7snSTM32入门教程-2023版 细致讲解 中文字幕,课程资…...
QT实现自定义带有提示信息的透明环形进度条
1. 概述 做界面开发的童鞋可能都会遇到这样的需求,就是有一些界面点击了之后比较耗时的操作,需要界面给出一个环形进度条的进度反馈信息. 如何来实现这样的需求呢,话不多说,上效果 透明进度条 2. 代码实现 waitfeedbackprogressba…...
金币程序题
昨天,小孩问了我一个python编程竞赛题,我看了一下题目,是一个数列编程的问题,我在想,小学五年级的学生能搞得懂吗?反正我家小孩是没有搞懂,不知道别人家的小孩能不能搞明白。所以我花了一点时间…...
《Windows API每日一练》9.13资源-鼠标位图和字符串
鼠标指针位图(Mouse Cursor Bitmap)是用于表示鼠标指针外观的图像。在 Windows 窗口编程中,可以使用自定义的鼠标指针位图来改变鼠标的外观,并提供更加个性化的用户体验。 ■以下是一些与鼠标指针位图相关的要点: ●…...
【保姆级教程】CenterNet的目标检测、3D检测、关键点检测使用教程
一、代码下载 仓库地址:https://github.com/xingyizhou/CenterNet?tab=readme-ov-file 二、目标检测 2.1 下载预训练权重 下载预训练权重ctdet_coco_dla_2x.pth放到models文件夹下 下载链接:https://drive.google.com/file/d/18Q3fzzAsha_3Qid6mn4jcIFPeOGUaj1d/edit …...
thinkphp:数据库复合查询-OR的使用
完整代码 $data[info] db::table(po_headers_all)->alias(ph) //设置wip_jobs_all的别名->join([vendors > ve], ph.vendor_codeve.vendor_code)->field(ph.po_num,ph.status,ph.vendor_code,ve.vendor_name,ph.po_all_amount,ph.note,ph.order_date,ph.need_dat…...
网络安全那些梗
网络安全领域的梗往往以幽默、讽刺或夸张的方式反映了该领域的某些现象、挑战或误解。以下是一些网络安全相关的梗: 关掉服务器是最有效的安全方法:这个梗源自一个笑话,讲述了一位程序员因误解妻子的话而只买了一个包子回家,随后被…...
交通气象站:保障道路安全的智慧之眼
随着社会的快速发展,交通运输日益繁忙,道路安全成为公众关注的焦点。在这个背景下,交通气象站作为保障道路安全的重要设施,正发挥着越来越重要的作用。它们不仅为交通管理部门提供及时、准确的气象信息,也为广大驾驶员…...
【分库】分库的核心原则
目录 分库的核心原则 前言 分区透明性与一致性保证 弹性伸缩性与容错性设计 数据安全与访问控制机制 分库的核心原则 前言 在设计和实施分库策略时,遵循一系列核心原则是至关重要的,以确保系统不仅能够在当前规模下高效运行,还能够随着…...
【Linux】软件管理工具 yum
文章目录 概念搜索:yum list安装:yum install卸载:yum remove 概念 在Linux下安装软件,可以下载到程序的源代码,进行编译得到可执行程序,另外这些软件还有依赖其它工具的问题,还得下载编译这些依…...
LangChain —— Prompt Templates
文章目录 一、什么是 Prompt Templates1、String PromptTemplates2、ChatPromptTemplates3、MessagesPlaceholder 留言占位符 二、如何使用 Prompt Templates1、使用几个简短示例2、在 chat model 中使用几个简短示例3、部分格式化提示模板4、一起编写提示 一、什么是 Prompt T…...
Python库 - Scrapy
Scrapy 是一个用于爬取网站数据、提取结构性数据的开源和协作框架。它最初是为网页抓取设计的,但也可以用于获取 API 提供的数据或作为通用的网络爬虫。 文章目录 主要特性主要组件使用流程1. 安装 Scrapy2. 创建 Scrapy 项目3. 定义 Item(数据ÿ…...
函数(实参以及形参)
实际参数(实参) 实际参数就是在调用函数时传递给函数的具体值。这些值可以是常量、变量、表达式或更复杂的数据结构。实参的值在函数被调用时传递给对应的形参,然后函数内部就可以使用这些值来执行相应的操作。 int main() {int a 0;int b …...
ArcGIS Pro SDK (八)地理数据库 8 拓扑
ArcGIS Pro SDK (八)地理数据库 8 拓扑 文章目录 ArcGIS Pro SDK (八)地理数据库 8 拓扑1 开放拓扑和进程定义2 获取拓扑规则3 验证拓扑4 获取拓扑错误5 标记和不标记为错误6 探索拓扑图7 找到最近的元素 环境:Visual …...
uniapp如何发送websocket请求
方法1: onLoad() {uni.connectSocket({url: ws://127.0.0.1:8000/ws/stat/realTimeStat/,success: (res) > {console.log(connect success, res);}});uni.onSocketOpen(function (res) {console.log(WebSocket连接已打开!);uni.sendSocketMessage({d…...
RabbitMQ的工作模式
RabbitMQ的工作模式 Hello World 模式 #mermaid-svg-sbc2QNYZFRQYbEib {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sbc2QNYZFRQYbEib .error-icon{fill:#552222;}#mermaid-svg-sbc2QNYZFRQYbEib .error-text{fi…...
自建搜索引擎-基于美丽云
Meilisearch 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引擎来实现完全独立的搜索服务。 由于成本问题,本博客采用自建的方式,本文就…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...





