Arbess 是一款國產開源免費的 CI/CD 工具,支持免費私有化部署,一鍵安裝零配置。本文將詳細介紹如何安裝配置使用GitLab、SonarQube、Arbess系統,使用流水線拉取GitLab源碼、使用SonarQube進行代碼掃描,構建安裝包並部署到遠程主機。
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、SonarQube 安裝與配置
本章節將介紹如何使用CentOS9搭建SonarQube25.1服務,在SonarQube創建項目,提供給Arbess調用。
2.1 安裝
- 安裝依賴
首先需要Java17和PostgreSQL。安裝PostgreSQL數據庫之後,執行如下命令,創建數據庫sonarqube→創建用户名密碼→賦予權限。
sudo -u postgres psql
CREATE DATABASE sonarqube WITH ENCODING 'UTF8' TEMPLATE template0;
CREATE USER sonar WITH PASSWORD 'sonar';
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonar;
創建SonarQube數據庫
數據庫創建完成之後,可以修改數據庫認證配置,編輯/var/lib/pgsql/15/data/pg_hba.conf,在最下方添加如下內容,並重啓服務。
host sonarqube sonar 127.0.0.1/32 scram-sha-256
- 安裝SonarQube
依賴安裝完畢之後,安裝SonarQube 25.1。
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-25.1.0.77747.zip
sudo unzip sonarqube-*.zip -d /opt
sudo mv /opt/sonarqube-* /opt/sonarqube
創建專用用户。
sudo useradd -M -d /opt/sonarqube -s /bin/false sonar
sudo chown -R sonar:sonar /opt/sonarqube
修改SonarQube數據連接信息。編輯/opt/sonarqube/conf/sonar.properties。
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.web.port=9000
修改完成後進入,啓動SonarQube服務。
sudo -u sonar /opt/sonarqube/bin/linux-x86-64/sonar.sh start
啓動SonarQube服務
安裝成功後訪問 http://127.0.0.1:9000 地址使用用户名密碼:admin\admin,訪問SonarQube。
2.2 配置
登錄SonarQube系統後,需要創建項目,以及將代碼導入項目進行分析。在SonarQube首頁,點擊Create Project,創建項目。輸入項目名稱、項目Key,點擊下一步進行創建。
創建項目
項目創建完成之後,需要生成項目Token,點擊右上角頭像 → My Account → Security。輸入Token名稱 → 點擊 Generate , 複製生成的Token。
創建Token
創建完畢之後,需要記住token和項目名稱,Arbess集成SonarQube需要用到。
3、Arbess 安裝與配置
3.1 安裝
本文以CentOS操作系統為例。
- 下載,服務端安裝包含Agent安裝,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首頁
3.2 配置
Arbess流水線採用可視化設計,實現Java項目自動化部署,在流水線中可克隆Gitlab倉庫代碼、集成SonarQube進行代碼掃描。創建流水線,進入流水線設計頁面進行操作。
3.2.1 配置GitLab源碼任務
- 配置GitLab服務集成
流水線配置GitLab源碼任務之前,需要添加GitLab服務集成,在系統設置→集成與開放→服務集成頁面添加相關服務。授權類型選擇Gitlab、填寫名稱、AccessTocken(個人密鑰,即文章1.2部分創建的個人訪問令牌)。
添加源碼集成
如需要添加自建的Gitlab,授權類型選擇自建Gitlab、填寫名稱、服務地址、AccessTocken(個人密鑰)。
添加源碼集成
- 添加GitLab源碼任務
服務集成添加完畢之後,進入流水線設計,點擊新階段→源碼→GitLab。需要填入任務名稱、Git版本、GitLab授權信息(AccessTocken)、倉庫、分支等信息。
添加GitLab源碼任務
|
字段 |
描述 |
|
任務名稱 |
任務名稱清晰地標識項目或對象。 |
|
Git版本 |
Arbess所在服務器Git安裝路徑。 |
|
GitLab授權信息 |
私人令牌,AccessTocken。 |
|
倉庫 |
選擇授權信息後點擊倉庫,程序會自動獲取憑證權限下的倉庫列表,管理者只需選擇需要配置的倉庫即可。 |
|
分支 |
選擇代碼的分支。填寫需要拉取遠程倉庫具體的分支,不填默認為master分支,填寫錯誤會導致任務執行失敗。 |
3.2.2 配置SonarQube代碼掃描
- 配置SonarQube服務集成
流水線配置SonarQube任務之前,需要添加SonarQube服務集成,在系統設置→集成與開放→服務集成頁面添加相關服務。授權類型選擇Sonar、填寫名稱、服務地址、認證類型(用户名密碼、密鑰)、用户名、密碼。
添加SonarQube服務
- 添加SonarQube代碼掃描任務
服務集成添加完畢之後,進入流水線設計,點擊新階段→代碼掃描→SonarQube代碼掃描。添加成功之後,彈出代碼掃描的配置。
配置SonarQube代碼掃描任務
|
字段 |
描述 |
|
任務名稱 |
任務名稱清晰地標識項目或對象。 |
|
掃描代碼語言 |
掃描代碼語言。 |
|
JDK版本 |
所在服務器JDK安裝路徑。 |
|
Maven版本 |
所在服務器Maven安裝路徑。 |
|
項目名稱 |
掃描的項目名稱,在SonarQube中創建的項目名稱。 |
|
掃描代碼地址 |
掃描代碼存放路徑,默認為${DEFAULT_CODE_ADDRESS},也可輸入絕對路徑。 |
|
SonarQube服務 |
安裝SonarQube的服務器地址、用户名、密碼。 |
3.2.3 配置Maven構建任務
代碼掃描添加完畢之後,添加構建安裝包任務。根據代碼構建方式選擇Maven構建,點擊新階段→構建→Maven構建。輸入構建信息,輸入完成後,點擊空白處進行保存。
配置Maven構建任務
|
字段 |
描述 |
|
任務名稱 |
任務名稱清晰地標識項目或對象。 |
|
JDK版本 |
Arbess所在服務器JDK安裝路徑。 |
|
Maven版本 |
Arbess所在服務器Maven安裝路徑。 |
|
模塊地址 |
構建路徑,默認為${DEFAULT_CODE_ADDRESS},也可輸入絕對路徑。 |
|
執行命令 |
執行Maven構建的命令。 |
3.2.4 配置主機部署任務
點擊新階段→部署→主機部署。輸入部署信息,部署的內容可以使用變量,添加變量後使用${變量名稱}進行引用,輸入完成後,點擊空白處進行保存。
配置主機部署任務
|
字段 |
描述 |
|
任務名稱 |
任務名稱清晰地標識項目或對象。默認主機部署。 |
|
主機地址 |
部署主機遠程SSH認證憑證。 |
|
部署文件 |
需要部署的文件,可以寫絕對路徑,也可以寫泛路徑,泛路徑需要配合部署文件規則來匹配到部署文件。
|
|
部署文件匹配規則
|
文件匹配規則,支持正則表達式。
|
|
部署位置 |
部署遠程主機位置。
|
|
部署命令 |
文件部署命令。 |
至此流水線設計完畢,下面介紹流水線運行以及查看代碼掃描報告。
4、運行流水線
- 運行流水線
流水線設計完畢之後,Arbess支持自動觸發、Webhook觸發、手動觸發三種運行模式。點擊右上角“運行”按鈕,手動觸發流水線。
運行流水線
流水線運行同時,點擊認為標籤右下角“日誌”,可查看運行實時日誌。
查看詳細日誌
- 查看代碼掃描報告
全部任務顯示為√則運行成功,運行完畢之後,可以在測試報告頁面查看SonarQube代碼掃描報告,點擊測試報告→代碼掃描→SonarQube,查看SonarQube代碼掃描報告。
查看測試報告
點擊SonarQube代碼掃描報告名稱,進入跳轉到SonarQube查看詳細報告。
查看詳細報告
- 查看運行歷史
可以在Arbess歷史頁面查看到流水線運行歷史。點擊運行歷史序號,即可查看詳細的運行日誌。
運行歷史
至此,使用Arbess成功搭建流水線,用來拉取GitLab源碼、使用SonarQube代碼掃描,構建安裝包並主機部署。