【持续集成_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 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引擎来实现完全独立的搜索服务。 由于成本问题,本博客采用自建的方式,本文就…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...

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

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...

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

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

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