DevOps實戰(7) - 使用Arbess+GitPuk+sourcefare實現Node.js項目自動化部署

Arbess 是一款國產開源免費的 CI/CD 工具,工具支持一鍵部署,頁面簡潔易用。本文將詳細介紹如何安裝配置使用GitPuk、sourcefare、Arbess系統,使用流水線拉取GitPuk源碼、使用sourcefare代碼掃描、構建安裝包并進行主機部署。

1、GitPuk 安裝與配置

GitPuk是TikLab DevOps下一款開源免費代碼管理工具,本章節將介紹如何使用CentOS搭建GitPuk服務器,并將代碼存放在GitPuk服務器,提供給Arbess克隆。

1.1 安裝

本文以CentOS操作系統為例。

  • 下載,CentOS安裝包下載地址:GitPuk下載,點擊CentOS下載,下載完成后得到類似tiklab-gitpuk-x.x.x.rpm的文件。
  • 安裝,上傳到服務器上,在文件同級目錄執行npm命令安裝。

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

  • 啟動,系統默認安裝路徑為/opt目錄,進入/opt/tiklab-gitpuk/bin目錄下,執行sh startup.sh即可啟動成功。

啟動GitPuk系統

使用 http://ip:9800 進行訪問。使用初始用戶名密碼admin\123456登錄,首次登錄需要修改管理員密碼。成功登錄后展示GitPuk首頁。

GitPuk首頁

1.2 配置

GitPuk登錄成功,需要添加代碼倉庫,GitPuk支持新建倉庫上傳代碼和從其他軟件導入倉庫兩種方式。

  • 新建倉庫

在倉庫頁面點擊右上角“新建倉庫”。

創建倉庫

新建的倉庫可通過HTTP和SSH方式按步驟上傳代碼。

上傳代碼

  • 導入倉庫

GitPuk也支持從外部倉庫導入。

導入倉庫

以私有Gitlab為例,導入需要提供私有Gitlab地址,以及訪問密鑰。添加外部倉庫信息完成后,選擇Gitlab的倉庫,進行導入。

導入倉庫

2、sourcefare 安裝與配置

sourefare是TikLab DevOps下一款開源免費代碼掃描工具,本章節將介紹如何使用CentOS搭建sourcefare服務,提供給Arbess調用進行代碼掃描。

2.1 安裝

本文以CentOS操作系統為例。

  • 下載,服務端安裝包含Agent安裝,CentOS安裝包下載地址:Sourcefare下載,點擊CentOS下載,下載安裝包如tiklab-sourcefare-x.x.x.rpm。
  • 安裝,上傳到服務器上,在文件同級目錄執行npm命令安裝。

rpm -ivh --replacefiles --nodeps tiklab-gitpuk-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登錄,首次登錄需要修改管理員密碼。成功登錄后展示Arbess首頁。

Arbess首頁

3.2 配置

Arbess流水線采用可視化設計,實現Java項目自動化部署,在流水線中可克隆GitPuk倉庫代碼、集成SourceFare進行代碼掃描。創建流水線,進入流水線設計頁面進行操作。

3.2.1 配置GitPuk源碼

  • 配置GitPuk服務集成

流水線配置GitPuk源碼任務之前,需要添加GitPuk服務集成,在在系統設置→集成與開放→服務集成頁面添加相關服務。授權類型選擇GitPuk、填寫名稱、服務地址(即文章1部分安裝的GitPuk地址)、用戶名、密碼。

添加源碼集成

  • 添加GitPuk源碼任務

服務集成添加完畢之后,進入流水線設計,點擊新階段→源碼→自建GitPuk。

添加GitPuk源碼任務

字段

描述

任務名稱

任務名稱清晰地標識項目或對象。

Git版本

Arbess所在服務器Git安裝路徑。

自建GitPuk服務

自建GitPuk服務地址。

倉庫

選擇授權信息后點擊倉庫,程序會自動獲取憑證權限下的倉庫列表,管理者只需選擇需要配置的倉庫即可。

分支

選擇代碼的分支。填寫需要拉取遠程倉庫具體的分支,不填默認為master分支,填寫錯誤會導致任務執行失敗。

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代碼掃描任務

字段

描述

任務名稱

任務名稱清晰地標識項目或對象。

掃描代碼語言

掃描代碼語言。

JDK版本

所在服務器JDK安裝路徑。

Maven版本

所在服務器Maven安裝路徑。

sourcefare服務

安裝sourcefare的服務器地址、用戶名、密碼。

sourcefare Scanner版本

安裝sourcefare Scanner的安裝路徑。

項目ID

掃描的項目ID,在sourcefare中創建的項目ID。

掃描代碼地址

掃描代碼存放路徑,默認為${DEFAULT_CODE_ADDRESS},也可輸入絕對路徑。

3.2.3 配置Node.js構建任務

代碼掃描添加完畢之后,添加構建安裝包任務。根據代碼構建方式選擇Node構建,點擊新階段→構建→Node構建。輸入構建信息,輸入完成后,點擊空白處進行保存。

配置Node.js構建任務

字段

描述

任務名稱

任務名稱清晰地標識項目或對象。

Node版本

Arbess所在服務器Node安裝路徑。

模塊地址

構建路徑,默認為${DEFAULT_CODE_ADDRESS},也可輸入絕對路徑。

執行命令

執行Node構建的命令。

3.2.4 配置主機部署任務

點擊新階段→部署→主機部署。輸入部署信息,部署的內容可以使用變量,添加變量后使用${變量名稱}進行引用,輸入完成后,點擊空白處進行保存。

配置主機部署任務

字段

描述

任務名稱

任務名稱清晰地標識項目或對象。默認主機部署。

主機地址

部署主機遠程SSH認證憑證。

部署文件

需要部署的文件,可以寫絕對路徑,也可以寫泛路徑,泛路徑需要配合部署文件規則來匹配到部署文件。
部署文件匹配規則文件匹配規則,支持正則表達式。

部署位置

部署遠程主機位置。

部署命令

文件部署命令。

至此流水線設計完畢,下面介紹流水線運行以及查看代碼掃描報告。

4、運行流水線

  • 運行流水線

流水線設計完畢之后,Arbess支持自動觸發、Webhook觸發、手動觸發三種運行模式。點擊右上角“運行”按鈕,手動觸發流水線。

運行流水線

流水線運行同時,點擊認為標簽右下角“日志”,可查看運行實時日志。

查看日志

  • 查看代碼掃描報告

點擊測試報告→代碼掃描→sourcefare,查看sourcefare代碼掃描報告。

查看sourcefare測試報告

點擊sourcefare代碼掃描報告名稱,進入跳轉到sourcefare查看詳細報告。

查看sourcefare詳細報告

問題TAB顯示詳細問題列表,點擊問題列表的問題名稱,還可以查看代碼詳細問題。

查看sourcefare詳細問題

sourcefare還可以查看代碼重復率、復雜度、覆蓋率等信息。

查看sourcefare代碼重復率

  • 查看運行歷史

可以在Arbess歷史頁面查看到流水線運行歷史。點擊運行歷史序號,即可查看詳細的運行日志。

運行歷史

至此,使用Arbess成功搭建流水線,用來拉取GitPuk源碼、使用sourcefare代碼掃描,構建安裝包并主機部署。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922454.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922454.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922454.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法,蒜鳥蒜鳥-P1-理解“雙指針”

歡迎來到啾啾的博客🐱。 記錄學習點滴。分享工作思考和實用技巧,偶爾也分享一些雜談💬。 有很多很多不足的地方,歡迎評論交流,感謝您的閱讀和評論😄。 目錄引言1 雙指針:Two Pointers1.1 左右指…

使用cookiecutter創建python項目

一、關于Python項目結構Python 項目并沒有完全統一的 “固定結構”,但行業內有一些廣泛遵循的約定俗成的目錄結構(尤其針對可分發的包或大型項目)。同時,確實有工具可以快速生成這些標準化結構,提高開發效率&#xff0…

臺積電生態工程深度解析:從晶圓廠到蜂巢的系統架構遷移

當半導體巨頭將工廠視為生態系統,用工程思維解決環境問題概述:生態系統的工程化再造臺積電近日開展的"積蜜"項目絕非簡單的企業CSR行為,而是一場將生態系統視為復雜系統進行工程化改造的技術實踐。本文將從系統架構、數據監控、循環…

從零實現一個簡易計算器

最近在刷算法題時,遇到了實現計算器的問題。一開始覺得很簡單,但真正動手實現時才發現其中有很多細節需要考慮。今天就來分享一下我的實現思路和學到的經驗。問題分析我們需要實現一個能夠處理加減乘除四則運算的計算器,要正確處理運算符的優…

Actix-webRust Web框架入門教程

文章目錄引言Actix-web是什么?準備工作你的第一個Actix-web應用理解代碼結構處理請求和響應接收請求數據返回響應中間件 - 增強你的應用狀態管理和依賴注入實用示例:構建RESTful API測試你的Actix-web應用部署Actix-web應用結語額外資源引言 嘿&#xf…

若依框架前端通過 nginx docker 鏡像本地運行

1. 前言 項目運行過程圖:對于前端項目通過命令 npm run build 打包后,無法直接運行。存在如下錯誤:可以通過配置 nginx 服務器運行前端項目解決如上問題。 2. Nginx 運行 采用 docker 鏡像的方式運行,docker-compose.yml 文件內容…

淺聊一下HTTP協議

在日常上網瀏覽網頁、刷視頻時,背后都離不開 HTTP 協議的支持。作為 Web 世界的 “交通規則”,它負責服務器和客戶端瀏覽器之間的數據傳輸。這篇文章就帶大家全面了解 HTTP 協議,從基本概念到通信細節,再到安全相關的 HTTPS&#…

機器人控制器開發(定位——cartographer ros2 使用2)

文章總覽 1 純定位模式 當完成建圖后,會生成pbstream格式的地圖文件 配置純定位模式的lua腳本 backpack_2d_localization.lua include "backpack_2d.lua"TRAJECTORY_BUILDER.pure_localization_trimmer {max_submaps_to_keep 3, } POSE_GRAPH.optimi…

《大數據之路1》筆記3:數據管理

一 元數據 1.1 元數據概述 定義: 元數據是關于數據的數據,元數據打通了源數據、數據倉庫、數據應用,記錄了數據從生產到消費的全部過程。元數據主要記錄數據倉庫中模型的定義、各層級間的映射關系、監控數據倉庫的數據狀態和ETL的任務運行狀態…

排序實現java

排序算法概述Java中實現排序可以通過多種方式,包括內置方法、自定義算法或使用第三方庫。常見的排序算法有冒泡排序、選擇排序、插入排序、快速排序、歸并排序等。使用Arrays.sort()方法對于數組排序,Java提供了Arrays.sort()方法,支持對基本…

51c大模型~合集182

我自己的原文哦~ https://blog.51cto.com/whaosoft/14174587 #LaV-CoT 超越GPT-4o,螞蟻集團與南洋理工大學提出:首個語言感知的視覺思維鏈 隨著大型視覺語言模型(VLM)的飛速發展,它們在處理復雜的視…

C++ STL之deque的使用和模擬實現

目錄 deque 核心本質與定位 與stack和queue的關系: deque的使用 deque的底層實現 deque的原理介紹 deque的缺陷 總結: deque deque文檔 : deque 翻譯: 雙端隊列 deque(通常發音類似“deck”)是“double-ended queue”(雙端隊列&…

布草洗滌廠設備租賃押金原路退回系統—東方仙盟

設備租賃狀態設備管理添加設備設備收押金設備退押金在布草洗滌行業的運營版圖中,設備租賃是連接廠商與客戶的重要紐帶,而押金的收取與退還則是這一環節中關乎信任與效率的關鍵節點。未來之窗布草洗滌廠深諳此道,專為設備租賃業務打造的 “押金…

換源rocklinux和centos

一、Rockylinux換源,國外的源換成國內的源#nmcli connection modify ens33 ipv4.addresses 192.168.121.11 ipv4.gateway 192.168.121.2 ipv4.method manual ipv4.dns 114.114.114.114 connection.autoconnect yes修改地址#systemctl stop firewalld#systemctl diab…

第一部分:服務器硬件配置

目錄1.1 服務器上架與連線1.2 啟用CPU虛擬化功能(BIOS設置)1.3 配置RAID存儲步驟1:進入RAID配置界面步驟2:確認RAID控制器信息步驟3:創建系統RAID(用于安裝ESXi)步驟4:創建數據RAID&…

手搓一個 DELL EMC Unity存儲系統健康檢查清單

寫在前面對于DELL EMC存儲系統Unity的一些深度的健康檢查通過Web的Unisphere圖形化界面是做不到的,圖形化界面只能看到是否有告警,物理的東西是否有問題的,邏輯的Pool和LUN等是否ready,再深入的潛在的問題是查不到的。另外&#x…

【數據結構】二叉樹的概念

01 概念定義:二叉樹既然叫二叉樹,顧名思義即度最大為2的樹稱為二叉樹。 它的度可以為 1 也可以為 0,但是度最大為 2 。 一顆二叉樹是節點的一個有限集合,該集合:① 由一個根節點加上兩棵被稱為左子樹和右子樹的二叉樹組…

【RK3576】【Android14】如何在Android14下單獨編譯kernel-6.1?

單獨編譯kernel依賴如下幾個源碼:【交叉編譯工具鏈】prebuilts/clang/host/linux-x86/clang-r487747c【內核源碼】kernel-6.1為什么Android下編譯內核使用clang作為交叉編譯工具鏈而不是GCC?Android 14 選擇使用預置的 Clang 工具鏈(如 clang…

什么是Redis的Pipeline

介紹Redis的Pipeline是一種網絡優化技術,在沒有Pipeline的時候,客戶端往redis發送請求,客戶端需要等到redis響應之后才能發送下一個請求。而Pipeline,使redis可以一次性接收多個請求。減少了通信次數,顯著的提高了性能…

【ElementUI el-table跨頁勾選】

一、el-table需加上refs和 row-key屬性 二、type"selection"勾選框 需加上 reserve-selection儲備選擇屬性 三、在分頁請求數據時&#xff0c;觸發 setSelected()方法 四、在 selection-change變化時保存 selectedRows <el-table ref"tables" :data&quo…