CI/CD—GitLab部署

GitLab簡介:

GitLab 是一個用于代碼托管和軟件開發協作的平臺,在全球開發者社區及企業中應用廣泛,以下是對它的詳細介紹:

主要功能

  • 代碼托管:提供了基于 Git 的代碼倉庫管理功能,支持創建、克隆、推送、拉取等常見的 Git 操作。開發團隊可以方便地將項目代碼存儲在 GitLab 上,進行版本控制,追蹤代碼的變更歷史,方便團隊成員協作開發。
  • CI/CD 集成:內置了強大的 CI/CD 功能,通過簡單的配置文件(如.gitlab-ci.yml),可以定義自動化的構建、測試和部署流程。當代碼發生變更時,能夠自動觸發相應的 CI/CD 任務,實現持續集成、持續交付和持續部署,提高軟件開發效率和質量。
  • 問題跟蹤:具備問題管理系統,團隊成員可以創建、分配、跟蹤和解決問題。可以為每個問題添加標簽、描述、優先級等信息,方便團隊對項目中的問題進行管理和跟進,確保問題得到及時處理。
  • 代碼審查:支持代碼審查功能,團隊成員可以對提交的代碼進行審查,提出意見和建議。通過代碼審查,可以提高代碼質量,發現潛在的問題和漏洞,促進團隊成員之間的知識共享和技術交流。
  • Wiki 功能:提供了 Wiki 功能,方便團隊記錄項目文檔、技術規范、操作手冊等信息。團隊成員可以在 Wiki 中創建和編輯頁面,協作編寫文檔,使項目相關信息更加易于查找和共享。
  • 容器鏡像倉庫:擁有容器鏡像倉庫,方便用戶存儲和管理 Docker 等容器鏡像。與 CI/CD 流程緊密集成,能夠在構建完成后自動將鏡像推送到鏡像倉庫,便于后續的部署和使用。

部署方式

  • 公有云版本:GitLab 提供了公有云服務,用戶可以直接在 GitLab 官網注冊賬號,使用在線的 GitLab 平臺。這種方式無需用戶自己搭建和維護服務器,開箱即用,適合小型團隊或個人開發者。
  • 私有部署版本:對于對數據安全和隱私有較高要求的企業或組織,可以選擇在自己的服務器上進行私有部署。GitLab 提供了多種安裝包和詳細的安裝文檔,支持在 Linux、Windows 等多種操作系統上進行部署,用戶可以根據自己的需求進行定制化配置。

技術優勢

  • 開源性:GitLab 是開源軟件,其源代碼可以免費獲取和使用。這使得用戶可以根據自己的需求對其進行定制化開發和擴展,同時也受益于全球開源社區的貢獻,能夠及時獲得新功能和 bug 修復。
  • 一體化解決方案:集代碼托管、CI/CD、問題跟蹤、代碼審查等多種功能于一體,為軟件開發提供了一站式的解決方案。避免了使用多個不同工具帶來的集成和協作問題,提高了團隊的工作效率。
  • 高度可擴展性:具有良好的可擴展性,支持通過插件和集成來擴展其功能。可以與許多其他工具和服務進行集成,如 Slack、Jira 等,滿足不同團隊的多樣化需求。
  • 安全性:注重安全性,提供了一系列的安全功能,如用戶認證和授權、訪問控制、代碼掃描等。能夠幫助用戶保護代碼資產的安全,防止數據泄露和惡意攻擊。

一、Gitlab安裝部署

1、環境準備

1.1、安裝相關的依賴

yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python curl

1.2、啟動ssh和postfix服務

systemctl enable postfix systemctl start postfix systemctl enable sshd systemctl start sshd

2、GitLab安裝

#下載
wgt https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm#安裝
rpm -ivh gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm

3、端口號配置修改數據存放路徑

3.1、配置Gitlab訪問的url

#編輯配置文件
vim /etc/gitlab/gitlab.rb 
external_url 'http://192.168.72.130:9080'

3.2、配置數據存放的路徑

設置 GitLab 的數據存放路徑。此處如果不設置,則默認路徑為?
/var/opt/gitlab/git-data/ 。修改的方法是在文件?gitlab.rb ?編寫如下代碼:(注意:在修改路徑前,要將原 GitLab 的數據存放目錄下的文件拷貝到新目錄中。)

3.3、加載配置重啟服務

#加載配置 
gitlab-ctl reconfigure #重新啟動Gitlab 
gitlab-ctl restart

4、訪問測試

瀏覽器輸入:192.168.72.130:9080
出現報錯:
gitlab-ctl tail gitlab-ctl tail nginx/gitlab_access.log gitlab-ctl tail nginx/gitlab_error.log less /var/log/gitlab/puma/current
執行 less /var/log/gitlab/puma/current 發現報錯:
4.4.1、puma是什么?
在 GitLab 里,Puma 是一款高性能的 Ruby Web 服務器,被用作 GitLab Rails 應用的后端服務器,負責處理來自客戶端的 HTTP 請求。下面從其作用、優勢、配置和管理等方面為你詳細介紹:

作用

GitLab 是基于 Ruby on Rails 框架開發的,而 Rails 應用本身不能直接處理 HTTP 請求,需要借助 Web 服務器來實現。Puma 的主要作用就是接收來自客戶端(如瀏覽器)的 HTTP 請求,然后將這些請求轉發給 GitLab 的 Rails 應用進行處理,最后把 Rails 應用生成的響應返回給客戶端。

優勢

  • 高性能:Puma 采用多線程和多進程的架構設計,能夠充分利用多核處理器的性能,同時處理多個請求,有效提升 GitLab 的響應速度和并發處理能力。
  • 可擴展性:可以根據服務器的硬件資源和實際的負載情況,靈活調整工作進程和線程的數量,以適應不同規模的用戶訪問需求。
  • 穩定性:具備良好的穩定性和容錯能力,能夠在高負載情況下保持穩定運行,減少服務中斷的風險。

配置

Puma 的配置文件通常位于?
/var/opt/gitlab/gitlab-rails/etc/puma.rb?,你可以通過編輯這個文件來調整 Puma 的參數設置,常見的配置參數如下:
  • 工作進程數量:通過?workers?參數設置,例如:
workers Integer(ENV['PUMA_WORKERS'] || 2)
該參數決定了 Puma 啟動的工作進程數量,可根據服務器的 CPU 核心數進行調整。
  • 線程數量:使用?threads?參數配置,示例如下:
threads Integer(ENV['MIN_THREADS'] || 1), Integer(ENV['MAX_THREADS'] || 16)
此參數設置了每個工作進程的最小和最大線程數。
  • 監聽地址和端口:通過?bind?參數指定,例如:
bind 'tcp://0.0.0.0:8080'
這表示 Puma 監聽所有網絡接口的 8080 端口。

管理

在 GitLab 中,可以使用?
gitlab-ctl?命令來管理 Puma 服務,常見的操作命令如下:
sudo gitlab-ctl status puma
該命令用于查看 Puma 服務的當前運行狀態。
  • 啟動服務:
sudo gitlab-ctl start puma
  • 用于停止 Puma 服務。
    • 重啟服務:
    當修改了 Puma 的配置文件后,可使用此命令重啟服務使配置生效。
sudo gitlab-ctl restart puma
修改了puma端口之后登錄成功
4.4.2、查看密碼存放的文件
cat /etc/gitlab/initial_root_password

二、Gitlab使用

1、修改初始密碼

步驟一:進入gitlab控制臺,查找root賬號

gitlab-rails console -e production

步驟二:查看root用戶的id

admin_users = User.where(admin: true)

步驟三:重新設置gitlab root賬號密碼

密碼設置成8位才符合git設定的密碼強度要求
 user = User.find_by(username: 'root')user.password = 'git@1234'user.password_confirmation = 'git@1234'user.save!

2、選擇語言

3、創建一個項目

4、Gitlab常見的命令

# 開啟,關閉,重啟: gitlab組件
gitlab-ctl {start|stop|restart|status} 		
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl status# 重載配置文件(重新編譯gitlab的配置)
gitlab-ctl reconfigure# 驗證配置文件
gitlab-ctl show-config   # 檢查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace    # 查看日志
gitlab-ctl tail
gitlab-ctl tail nginx/gitlab_access.log
gitlab-ctl tail nginx/gitlab_error.log# 常用目錄
日志地址:/var/log/gitlab/   # 對應各服務的打印日志 
服務地址:/var/opt/gitlab/   # 對應各服務的主目錄 


5、卸載

停止gitlab使用命令:gitlab-ctl stop卸載gitlab(注意這里寫的是gitlab-ee)使用命令:rpm -e gitlab-ee查看并刪除gitlab進程使用命令:ps -ef | grep gitlab如果有進程,就殺掉(kill -9 pid),沒有的話進行下一步殺掉后,在使用ps -aux | grep gitlab確認一遍,還有沒有gitlab的進程刪除所有包含gitlab的文件使用命令:find / -namegitlab | xargs rm -rf

資料參考:

https://zhuanlan.zhihu.com/p/704511497

linux環境GitLab服務部署安裝及使用_linux安裝gitlab-CSDN博客

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

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

相關文章

ubuntu軟件

視頻軟件,大部分的編碼都能適應 sudo apt install vlc圖片軟件 sudo apt install gwenview截圖軟件 sudo apt install flameshot設置快捷鍵 flameshot flameshot gui -p /home/cyun/Pictures/flameshot也就是把它保存到一個自定義的路徑 菜單更換 sudo apt r…

Easysearch 使用 AWS S3 進行快照備份與還原:完整指南及常見錯誤排查

Easysearch 可以使用 AWS S3 作為遠程存儲庫,進行索引的快照(Snapshot)備份和恢復。同時,Easysearch 內置了 S3 插件,無需額外安裝。以下是完整的配置和操作步驟。 1. 在 AWS S3 上創建存儲桶 登錄 AWS 控制臺&#x…

【系統架構設計師】性能評估

目錄 1. 說明2. 基準測試程序3. Web服務器的性能評估4. 系統監視5. 例題5.1 例題1 1. 說明 1.性能評估是為了一個目的,按照一定的步驟,選用一定的度量項目,通過建模和實現,對一個系統的性能進行各項檢測,對測試結果做…

動態規劃-第2篇

前言:在上一篇文章中,我們了解了動態規劃的基本概念和解決問題的基本思路。通過分解問題、存儲子問題的解,動態規劃為我們提供了高效的解決方案。然而,動態規劃并不是一成不變的,它有很多不同的技巧和變種,…

基于Redis實現限流

限流盡可能在滿足需求的情況下越簡單越好! 1、基于Redsi的increment方法實現固定窗口限流 Redis的increment方法保證并發線程安全窗口盡可能越小越好(太大可能某一小段時間就打滿請求剩下的都拿不到令牌了)這個原理其實就是用當前時間戳然后除窗口大小 在這個窗口大…

【工具使用】IDEA 社區版如何創建 Spring Boot 項目(詳細教程)

IDEA 社區版如何創建 Spring Boot 項目(詳細教程) Spring Boot 以其簡潔、高效的特性,成為 Java 開發的主流框架之一。雖然 IntelliJ IDEA 專業版提供了Spring Boot 項目向導,但 社區版(Community Edition&#xff09…

探索高性能AI識別和邊緣計算 | NVIDIA Jetson Orin Nano 8GB 開發套件的全面測評

隨著邊緣計算和人工智能技術的迅速發展,性能強大的嵌入式AI開發板成為開發者和企業關注的焦點。NVIDIA近期推出的Jetson Orin Nano 8GB開發套件,憑借其40 TOPS算力、高效的Ampere架構GPU以及出色的邊緣AI能力,引起了廣泛關注。本文將從配置性…

緊急救援!MySQL數據庫誤刪后的3種恢復方案

一、誤刪場景分類與恢復策略 ?常見誤操作場景?: DROP TABLE 誤刪單表(高頻事故)DELETE 誤刪數據(可通過事務回滾搶救)DROP DATABASE 刪除整個庫(需全量備份)服務器rm -rf(物理文件刪除)?恢復方案選擇矩陣?: 場景推薦方案時間窗口表結構刪除(DROP)備份恢復 + B…

開源免費日志服務ELK Syack代替syslog

一、ELK Stack 采集 syslog 日志的主要方式 通常,ELK Stack 使用 Logstash 或者 Filebeat 來采集 syslog 日志。 Beats 通常更輕量級,適合作為代理部署在各個日志源服務器上,而 Logstash 則功能更強大,可以進行更復雜的日志處理和…

單片機設計暖腳器研究

標題:單片機設計暖腳器研究 內容:1.摘要 本文聚焦于基于單片機設計暖腳器的研究。背景方面,在寒冷季節,暖腳器能有效改善腳部寒冷狀況,提升人們的舒適度,但傳統暖腳器存在功能單一、溫控不準確等問題。目的是設計一款智能、高效且…

藍橋杯省賽真題C++B組2024-握手問題

一、題目 【問題描述】 小藍組織了一場算法交流會議,總共有 50 人參加了本次會議。在會議上,大家進行了握手交流。按照慣例他們每個人都要與除自己以外的其他所有人進行一次握手(且僅有一次)。但有 7 個人,這 7 人彼此之間沒有進行握手(但這…

C#+AForge 實現視頻錄制

C#AForge 實現視頻錄制 ? 在C#中,使用AForge 庫實現視頻錄制功能是一個比較直接的過程。AForge 是一個開源的.NET框架,提供了許多用于處理圖像和視頻的類庫。 開發步驟 安裝AForge庫 ? 首先,確保你的項目中已經安裝了 AForge.Video和AFo…

PHP框架加載不上.env文件中的變量

以lumen5.5框架為例,根目錄中bootstrap文件夾下的app.php文件中 (new Dotenv\Dotenv(__DIR__./../))->load(); 是讀取所有.env中的文件的,這個是正常的,但是在代碼中的任何位置或者在config目錄下的databases.php里,代碼如…

21.Linux 線程庫的使用與封裝

在linux內核中并沒有線程的概念,只有輕量級進程LWP的概念,linux下的線程都是是由LWP進行模擬實現的。因此linux操作系統中不會提供線程的相關接口,只會提供輕量級線程的接口(如vfork,clone等)。但是在我們的…

Aliyun CTF 2025 web 復現

文章目錄 ezoj打卡OKoffens1veFakejump server ezoj 進來一看是算法題,先做了試試看,gpt寫了一個高效代碼通過了 通過后沒看見啥,根據頁面底部提示去/source看到源代碼,沒啥思路,直接看wp吧,跟算法題沒啥關系,關鍵是去…

《鴻蒙系統下AI模型訓練加速:時間成本的深度剖析與優化策略》

在當今數字化浪潮中,鴻蒙系統憑借其獨特的分布式架構與強大的生態潛力,為人工智能的發展注入了新的活力。隨著AI應用在鴻蒙系統上的日益普及,如何有效降低模型訓練的時間成本,成為了開發者與研究者們亟待攻克的關鍵課題。這不僅關…

Git使用(一)--如何在 Windows 上安裝 Git:詳細步驟指南

如果你想在 Windows 機器上安裝 Git,可以按照以下詳細指南進行操作。 第一步:下載 Git 可通過官網下載 適用于 Windows 的 Git 最新版本。 如果下載速度較慢,可以通過下面提供的百度網盤 鏈接下載安裝包, https://git-scm.com/d…

基于Prometheus+Grafana的Deepseek性能監控實戰

文章目錄 1. 為什么需要專門的大模型監控?2. 技術棧組成2.1 vLLM(推理引擎層)2.2 Prometheus(監控采集層)2.3 Grafana(數據可視化平臺)3. 監控系統架構4. 實施步驟4.1 啟動DeepSeek-R1模型4.2 部署 Prometheus4.2.1 拉取鏡像4.2.2 編寫配置文件4.2.3 啟動容器4.3 部署 G…

本地Git倉庫搭建(DevStar)與Git基本命令

本地Git倉庫搭建(DevStar)與Git基本命令 實驗環境搭建平臺Git基本命令的使用本地倉庫的創建代碼提交代碼合并版本發布 總結 實驗環境 搭建平臺 按照DevStar的Github倉庫要求,在終端中執行下列命令,即可成功安裝DevStar到本地部署…

stm32 藍橋杯 物聯網 獨立鍵盤的使用

在藍橋杯物聯網平臺里面,有5個外接設備,其中有一個就是6個獨立按鍵。首先,我們先看一下按鍵有關的電路圖。 電路圖與cubemx設定 由圖可見,獨立鍵盤組由兩行三列構成,我們通過行列來鎖定要訪問的獨立按鍵在哪。ROW1掛…