DevOps实战(4) - 使用Arbess+GitLab+SourceFare实现Java项目自动化部署

Arbess 是一款国产开源免费的 CI/CD 工具,包含流水线管理、流水线设计、流水线执行、测试报告、统计分析等模块。本文将详细介绍如何安装配置使用GitLab、SourceFare、Arbess系统,GitLab提交代码自动触发流水线拉取GitLab源码、并使用SourceFare代码扫描,然后进行java构建并部署到主机。

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、SourceFare 安装与配置

sourcefare是一款国产开源代码扫描工具,本章节将介绍如何使用CentOS搭建SourceFare服务,提供给Arbess调用进行代码扫描。

2.1 安装

本文以CentOS操作系统为例。

  • 下载,CentOS安装包下载地址:Sourcefare下载,点击CentOS下载,下载安装包如tiklab-sourcefare-x.x.x.rpm。
  • 安装,上传到服务器上,在文件同级目录执行npm命令安装。

rpm -ivh --replacefiles --nodeps tiklab-sourcefare-x.x.x.rpm

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

启动SourceFare系统

使用 http://ip:9900 进行访问。使用初始用户名密码admin\123456登录,首次登录需要修改管理员密码。成功登录后展示SourceFare首页。

SourceFare首页

2.2 配置

SourceFare登录成功,需要添加项目,以及代码扫描计划,Arbess运行代码扫描需要代码扫描计划ID,代码扫描报告会归类到相应代码扫描计划。

在项目页面点击新建项目按钮进行新建。输入项目名称以及项目访问信息(公开、私密)进行创建。

新建项目

成功创建项目后,继续创建扫描计划,创建扫描计划后,在扫描计划页面,需要记住ProjectKey,后期Arbess集成SourceFare需要用到,也可查看Arbess调用的历史扫描计划报告。

创建扫描计划

3、Arbess 安装与配置

3.1 安装

本文以CentOS操作系统为例。

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

rpm -ivh --replacefiles --nodeps tiklab-arbess-x.x.x.rpm

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

启动Arbess系统

使用 http://ip:9200 进行访问。使用初始用户名密码admin\123456登录,首次登录需要修改管理员密码。

3.2 配置

Arbess流水线采用可视化设计,搭建自动化代码扫描、自动化测试平台,在流水线中可克隆GitLab仓库代码、集成SourceFare进行代码扫描。创建流水线,进入流水线设计页面进行操作。

3.2.1 配置Gitlab源码

  • 配置GitLab服务集成

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

添加GitLab源码集成

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

添加GitLab源码集成

  • 添加GitLab源码任务

服务集成添加完毕之后,进入流水线设计,点击新阶段→源码→GitLab。需要填入任务名称、Git版本、GitLab授权信息(AccessTocken)、仓库、分支等信息。

添加GitLab源码任务

|------------|------------------------------------------------------|
| 字段 | 描述 |
| 任务名称 | 任务名称清晰地标识项目或对象。 |
| Git版本 | Arbess所在服务器Git安装路径。 |
| GitLab授权信息 | 私人令牌,AccessTocken。 |
| 仓库 | 选择授权信息后点击仓库,程序会自动获取凭证权限下的仓库列表,管理者只需选择需要配置的仓库即可。 |
| 分支 | 选择代码的分支。填写需要拉取远程仓库具体的分支,不填默认为master分支,填写错误会导致任务执行失败。 |

当Gitlab授权信息错误,选择仓库,界面会给出提醒,需要确认Gitlab的个人令牌是否正常。

令牌无效提醒

3.2.2 配置SourceFare代码扫描

  • 配置SourceFare服务集成

流水线配置SourceFare任务之前,需要添加SourceFare服务集成,在系统设置→集成与开放→服务集成页面添加相关服务。授权类型选择SourceFare、填写名称、服务地址、认证类型(用户名密码、密钥)、用户名、密码。

添加SourceFare服务

  • 配置SourceFare Scanner工具集成

还需要配置SourceFare Scanner工具,进入下载地址:SourceFareAgent下载。下载对应系统文件。在系统设置→集成与开放→工具集成页面添加相关服务。授权类型选择Sonar Scanner、填写名称、安装方式选择安装包,上传SourceFare Scanner工具安装包。

添加SourceFare Scanner工具

上传SourceFare Scanner工具安装包,系统会自动解析运行文件地址。

添加SourceFare Scanner工具

  • 添加SourceFare源码任务

服务集成添加完毕之后,进入流水线设计,点击新阶段→代码扫描→SourceFare代码扫描。输入代码扫描信息,输入完成后,点击空白处进行保存。

配置SourceFare代码扫描任务

|----------------------|-----------------------------------------------|
| 字段 | 描述 |
| 任务名称 | 任务名称清晰地标识项目或对象。 |
| 扫描代码语言 | 扫描代码语言(支持Java、JavaScript、Go)。 |
| JDK版本 | 所在服务器JDK安装路径。 |
| Maven版本 | 所在服务器Maven安装路径。 |
| SourceFare服务 | 安装SourceFare的服务器地址、用户名、密码。 |
| SourceFare Scanner版本 | 安装SourceFare Scanner的安装路径。 |
| 项目ID | 扫描的项目ID,在SourceFare中创建的项目ID。 |
| 扫描代码地址 | 扫描代码存放路径,默认为${DEFAULT_CODE_ADDRESS},也可输入绝对路径。 |

3.2.3 配置Maven构建任务

代码扫描添加完毕之后,添加构建安装包任务。根据代码构建方式选择Maven构建,点击新阶段→构建→Maven构建。输入构建信息,输入完成后,点击空白处进行保存。

配置Maven构建任务

|---------|-------------------------------------------|
| 字段 | 描述 |
| 任务名称 | 任务名称清晰地标识项目或对象。 |
| JDK版本 | Arbess所在服务器JDK安装路径。 |
| Maven版本 | Arbess所在服务器Maven安装路径。 |
| 模块地址 | 构建路径,默认为${DEFAULT_CODE_ADDRESS},也可输入绝对路径。 |
| 执行命令 | 执行Maven构建的命令。 |

3.2.4 配置主机部署任务

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

配置主机部署任务

|----------|------------------------------------------------|
| 字段 | 描述 |
| 任务名称 | 任务名称清晰地标识项目或对象。默认主机部署。 |
| 主机地址 | 部署主机远程SSH认证凭证。 |
| 部署文件 | 需要部署的文件,可以写绝对路径,也可以写泛路径,泛路径需要配合部署文件规则来匹配到部署文件。 |
| 部署文件匹配规则 | 文件匹配规则,支持正则表达式。 |
| 部署位置 | 部署远程主机位置。 |
| 部署命令 | 文件部署命令。 |

至此流水线设计完毕,下面介绍流水线运行以及查看代码扫描报告。

4、运行流水线

  • 运行流水线

流水线设计完毕之后,Arbess支持自动触发、Webhook触发、手动触发三种运行模式。点击右上角"运行"按钮,手动触发流水线。

运行流水线

流水线运行同时,点击认为标签右下角"日志",可查看运行实时日志。

日志

详细日志

  • 配置Webhook

运行流水线成功后,配置Webhook。点击触发设置,开启Webhook。

开启Webhook触发

Arbess流水线开启Webhook后,将Webhook地址填入GitLab的Webhooks地址,并且按照需求设置触发条件,例如推送触发。

设置Webhook触发

  • 查看代码扫描报告

点击测试报告→代码扫描→SourceFare,查看SourceFare代码扫描报告。

查看SourceFare测试报告

点击SourceFare代码扫描报告名称,进入跳转到SourceFare查看详细报告。

查看SourceFare详细报告

点击问题列表的问题名称,还可以查看代码详细问题。

查看SourceFare详细问题

SourceFare还可以查看代码重复率、复杂度、覆盖率等信息。

查看SourceFare代码重复率

  • 查看运行历史

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

运行历史

至此,使用Arbess成功搭建流水线,用来拉取GitLab源码、使用SourceFare代码扫描,并且设置Webhook触发。

相关推荐
明月心9522 天前
git remote add 用法
gitlab
only_Klein2 天前
jenkins流水线报错:Connection reset by peer
ci/cd·kubernetes·gitlab·jenkins·ssl
梁萌3 天前
docker部署gitlab和gitlab runner
docker·eureka·gitlab
johnnyAndCode3 天前
Idea 设置GitLab时使用账密,而不是token的配置方法
gitlab·idea
天外飞雨3 天前
Gitlab使用
gitlab
BUTCHER54 天前
GitLab SSH 密钥配置
运维·ssh·gitlab
明月心9524 天前
GitLab使用
gitlab
明月心9525 天前
gitlab pull requets
gitlab
BUTCHER55 天前
GitLab基本设置
gitlab
DevOps探索之旅5 天前
GitPuk从入门到精通,使用GitPuk + Arbess进行CICD自动化部署
自动化·arbess·gitpuk·国产开源代码管理工具·一文上手