Arbess速成手册(15) - 集成GitLab实现Java项目自动化构建并多主机同时部署

Arbess 是一款国产开源免费的 CI/CD 工具,工具轻量、简洁。本文将详细介绍如何安装Arbess、GitLab,并创建配置流水线实现多主机同时部署。

1、Gitlab 安装与配置

本章节将介绍如何使用CentOS9搭建Gitlab服务器,并将代码存放在Gitlab服务器,提供给Arbess克隆源码。

1.1 安装

  • 安装基础依赖。

sudo yum update -y

sudo yum install -y curl policycoreutils-python-utils openssh-server perl

sudo systemctl enable --now sshd

  • 获取Gitlab安装包。

curl -LO https://packages.gitlab.cn/repository/el/8/gitlab-jh-17.7.0-jh.0.el8.x86_64.rpm

  • 安装Gitlab安装包。访问URL可以自己设置。

export EXTERNAL_URL="http://ip" && sudo rpm -ivh gitlab-jh-x.x.x.rpm

  • 安装完成之后,使用sudo gitlab-ctl status检查服务状态。
  • 浏览器访问配置的http://ip,使用用户名root,密码 /etc/gitlab/initial_root_password 中获取,进行登录。

1.2 配置

gitlab安装完成之后,可以将代码推送到仓库中,Arbess克隆源码需要创建GItlab的个人令牌,用于Arbess访问Gitlab。进入用户设置→访问令牌,按照需求创建创建访问令牌。

创建个人令牌

令牌创建完毕,请妥善保存好您的令牌。

个人令牌

2、Arbess 安装与配置

2.1 安装

本文以CentOS操作系统为例。

  • 下载,CentOS安装包下载地址:Arbess下载,点击CentOS下载,下载完成后得到类似tiklab-arbess-x.x.x.rpm的文件。
  • 安装,上传到服务器上,在文件同级目录执行命令安装。

rpm -ivh tiklab-arbess-x.x.x.rpm

  • 启动,系统默认安装路径为/opt目录,进入/opt/tiklab-arbess/bin目录下,执行./arbess start即可启动成功。

​启动Arbess

使用 http://ip:9200 进行访问。使用初始用户名密码admin\123456登录,成功登录后展示Arbess首页。

​Arbess首页

2.2 配置

Arbess流水线采用可视化设计,实现Java项目自动化部署,在流水线中可克隆Gitlab仓库代码,构建并进行多主机部署。创建流水线,进入流水线设计页面进行操作。

2.2.1 配置GitLab任务

  • 配置GitLab服务集成

流水线配置GitLab源码任务之前,需要添加GitLab服务集成,在系统设置→集成与开放→服务集成页面添加相关服务。授权类型选择Gitlab、填写名称、AccessTocken(个人密钥,即文章1.2部分创建的个人访问令牌)。

添加源码集成

如需要添加自建的Gitlab,授权类型选择自建Gitlab、填写名称、服务地址、AccessTocken(个人密钥)。

添加源码集成

  • 添加GitLab源码任务

服务集成添加完毕之后,进入流水线设计,点击新阶段→源码→GitLab。

添加GitLab源码

字段

描述

任务名称

任务名称清晰地标识项目或对象。

Git版本

Arbess所在服务器Git安装路径。

GitLab授权信息

私人令牌,AccessTocken。

仓库

选择授权信息后点击仓库,程序会自动获取凭证权限下的仓库列表,管理者只需选择需要配置的仓库即可。

分支

选择代码的分支。填写需要拉取远程仓库具体的分支,不填默认为master分支,填写错误会导致任务执行失败。

2.2.2 配置Maven构建任务

源码配置完毕后,配置构建任务,Arbess支持多种构建方式,例如添加Maven构建,点击新阶段→构建→Maven构建。

​配置Maven构建任务

字段

描述

任务名称

任务名称清晰地标识项目或对象。

JDK版本

Arbess所在服务器JDK安装路径。

Maven版本

Arbess所在服务器Maven安装路径。

模块地址

构建路径,默认为${DEFAULT_CODE_ADDRESS},也可输入绝对路径。

执行命令

执行Maven构建的命令。

2.2.3 配置主机部署任务

  • 配置主机组

进入系统设置→资源配置→主机组,维护主机组。

​维护主机组

添加的主机组中包含维护的主机。

​添加主机组

  • 配置部署任务

配置主机组后,添加部署任务。点击新阶段→部署→主机部署,输入部署信息,主机地址选择新添加的主机组。部署的内容可以使用变量,添加变量后使用${变量名称}进行引用,输入完成后,点击空白处进行保存。

配置主机部署任务

字段

描述

任务名称

任务名称清晰地标识项目或对象。默认主机部署。

主机地址

部署主机远程SSH认证凭证。

部署文件

需要部署的文件,可以写绝对路径,也可以写泛路径,泛路径需要配合部署文件规则来匹配到部署文件。
部署文件匹配规则文件匹配规则,支持正则表达式。

部署位置

部署远程主机位置。

部署命令

文件部署命令。

3、运行流水线

  • 运行流水线

多台主机部署完成后,点击右上角运行,验证流水线运行情况。

运行流水线

点击任务日志,可查看任务实时日志,点击对应任务,可查看任务相关日志。

​查看详细日志

  • 查看运行历史

可以在Arbess历史页面查看到流水线运行历史。点击运行历史序号,即可查看详细的运行日志。

运行历史

至此,用户可通过流水线克隆GitLab源码,构建安装包,进行多主机部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1124631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI也要“外挂“?揭秘Agent架构三大神器,让ChatGPT秒变项目经理,小白也能秒变大神!

为什么 ChatGPT 有时候像个只会背书的书呆子,而 AutoGPT 或 Devin 却像个能干活的项目经理? 区别不在于模型本身(大脑都差不多),而在于外挂系统的设计。 让我们潜入 Agent 的机箱内部。01. Planning(规划&a…

基于Spring Boot的博客系统的设计与实现

3 系统需求分析 在当今的社会生活中,互联网已经变得非常普遍和重要。充分利用互联网大数据等技术可以解决很多问题。目前,博客管理也面临着自身的问题。根据这一普遍现象,该系统可以很好地解决这些问题[7]。系统中这二类用户的数据在系统中非…

Arbess速成手册(17) - 集成GitLab、SonarQube实现代码扫描通过后自动化构建并主机部署

Arbess 是一款开源免费的 CI/CD 工具,支持免费私有化部署,一键安装零配置。本文将详细介绍如何安装配置使用GitLab、SonarQube、Arbess系统,使用流水线拉取GitLab源码、使用SonarQube进行代码扫描,构建安装包并部署到远程主机。 …

科技赋能清洁升级 绿色守护厂区环境——靖江庆润固废引入明诺MN-S1800四轮扫地车助力环保作业

作为一家专注于固体废物治理、水污染治理、大气污染治理等领域的环保企业,靖江庆润固废处置有限公司始终秉持“绿色发展、环保先行”的经营理念,在致力于各类固废无害化处置与资源回收利用的同时,高度重视厂区作业环境的优化提升。近日&#…

基于大数据的热门旅游景点推荐系统

第3章 系统需求分析 3.1 可行性分析 本章着重于进行可行性分析,旨在全面评估现有技术实现预期目标的可能性,以及系统能否满足用户的具体需求。通过多维度考量,我们能够及时发现并修正项目中的潜在风险,从而有效减少不必要的损耗&a…

AI Agent = 最强大脑 + 记性超好 + 计划周密 + 手脚麻利!编程开发新纪元,小白也能秒变大神!

一句话定义:AI Agent 最强大脑 记性超好 计划周密 手脚麻利!那么,如何系统的去学习大模型LLM? 作为一名深耕行业的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该…

Arbess速成手册(16) - 集成GitHub实现Java项目自动化构建并Docker部署

Arbess 是一款国产开源免费的 CI/CD 工具,支持免费自动化部署,一键安装零配置。本文将详细介绍如何安装并使用ArbessGitHub实现Docker项目自动化构建部署。 1、GitHub 配置 本章节将介绍如何创建GitHub个人访问令牌,提供给Arbess克隆源码。…

springboot基于JAVA的航空机票预定管理系统

3 系统分析 3.1可行性分析 在开发系统以前,必须对系统开展可行性研究,目地是用有效的方法处理最大的问题。程序流程一旦开发出去满足用户的要求,便会产生许多益处。下面咱们就从技术性、操作、经济、法律等领域来挑选这一系统是不是会最后开发…

2KW-5KW电机控制器全套方案:电摩与电动三轮车控制器硬件原理图及MATLAB建模C代码业内领先

2KW 3KW 5KW电机控制器 电摩控制器 电动三轮车电机控制器 全套方案 硬件原理图 PCB源代码 采用MATLAB建模,并生成C代码 业内领先。 市面上搞电动车控制器开发的兄弟都懂,电机控制这玩意儿既要硬件底子扎实又得玩转算法。最近捣鼓了个支持2KW到5KW功率的通…

基于Spring Boot 悦己美容院后台管理系统的设计与实现

2系统需求分析 需求分析的首要是要分析用户的需求,知道用户存在的一些情况,并且要明确用户的使用状况,然后设计规划解决的问题。其中在使用定性的分析以及定量的分析,从这两个方面获取用户的需求。一方面定性的分析获得的应该是用…

运营同事最爱:一键批量生成海报/水印/尺寸适配

运营需求的本质:同一套模板 + 多条数据 + 多平台尺寸 → 输出一堆一致、可追溯的素材包。 你要做的不是“脚本”,而是模板化流水线(Poster Pipeline)。 1)目标与边界:把需求拆成 4 个稳定模块 模板渲染:背景 + 文案 + 图片(logo/角标) + 二维码 水印系统:文字/图片水印…

性能测试自动化框架设计:构建高效、可扩展的测试解决方案

在当今快节奏的软件开发环境中,性能测试已成为确保应用可靠性和用户体验的关键环节。然而,手动性能测试效率低下、易出错,无法满足现代敏捷开发和持续集成(CI/CD)的需求。自动化框架的引入,能显著提升测试的…

基于Si4463的实现跳频收发、数据包大小64字节、空中数据速率300kbps的代码

基于Si4463的实现跳频收发、数据包大小64字节、空中数据速率300kbps的代码。包括初始化Si4463芯片、设置跳频参数、发送和接收数据包等功能。 1. 初始化Si4463芯片 首先,需要初始化Si4463芯片,设置基本参数,如频率范围、数据速率等。 #includ…

django基于神经网络的学生学习情况分析系统

第3章需求分析 3.1可行性分析 3.1.1技术可行性分析 技术可行性分析的目的是通过对已有技术的了解,对开发学生学习情况分析系统过程中需要的各种技术进行分析,然后确定本系统是否能成功开发,并评估开发效率和完成情况。由于学生学习情况分析系…

邮件轰炸式通知太烦?用 Python 做一个“智能提醒器”:只推送关键变化

你一定遇到过这种灾难: CI 每次跑完都发邮件、监控每分钟都发一封、群里提示刷屏到“有用信息”被淹没。 真正想要的是:只在“关键变化”发生时提醒,并且能做到:去重、节流、合并摘要、可追溯。 这篇文章给你一套可落地的“智能提醒器(Smart Notifier)”思路与核心代码:…

MATLAB代码:计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度 关键词:碳捕集 虚拟电厂...

MATLAB代码:计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度 关键词:碳捕集 虚拟电厂 需求响应 优化调度 电转气协同调度 参考文档:《计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度》完全复现 仿真平台:MATLABCPLE…

如何用Chaos Engineering提升韧性

为什么软件测试从业者需要关注Chaos Engineering?在数字化转型的浪潮中,软件系统的复杂性日益增加,意外故障可能导致灾难性后果——从服务中断到数据丢失。作为软件测试从业者,您传统的职责是发现和修复bug,但在云原生…

剑桥大学突破性研究:如何让AI在对话中学会真正的自信判断

这项由剑桥大学与复旦大学合作开展的重要研究发表于2026年1月,论文编号为arXiv:2601.02179v1。研究团队首次系统性地探索了一个非常有趣但又极其重要的问题:当我们与AI进行多轮对话时,AI是否真的知道自己在说什么,它对自己答案的信…

CSV 10GB 怎么处理?我用“分块 + 流式写入”把电脑救活(只推关键计算,不把内存当垃圾桶)

10GB CSV 最大的坑不是“文件大”,而是: 你一旦 pd.read_csv() 全量读进来,内存会被 DataFrame 的列对象、字符串、索引、dtype 推到爆。 解决思路也不复杂:永远不要把 10GB 当成一个 DataFrame 来处理,而是当成一个“数据流”。 1)先上结论:正确的处理姿势是“流水线”…

威斯康星大学突破:AI实现多角度洪水监测能力

这项由威斯康星大学麦迪逊分校可持续性与全球环境中心和英国朴茨茅斯大学AI与数据科学中心联合开展的研究,发表于2026年1月的arXiv预印本平台(论文编号:arXiv:2601.02315v1),为洪水监测技术带来了重大突破。说起洪水监…