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

【持续集成_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(数据&#xff…...

函数(实参以及形参)

实际参数(实参) 实际参数就是在调用函数时传递给函数的具体值。这些值可以是常量、变量、表达式或更复杂的数据结构。实参的值在函数被调用时传递给对应的形参,然后函数内部就可以使用这些值来执行相应的操作。 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 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引擎来实现完全独立的搜索服务。 由于成本问题,本博客采用自建的方式,本文就…...

条件运算符

C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

微信小程序 - 手机震动

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

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...

C++_哈希表

本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、基础概念 1. 哈希核心思想&#xff1a; 哈希函数的作用&#xff1a;通过此函数建立一个Key与存储位置之间的映射关系。理想目标&#xff1a;实现…...