GitLab簡介
GitLab 是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務
GitLab系統架構
當~git
在圖片中引用時,它表示git用戶的主目錄,通常是/ home / git。
GitLab主要以/home/git
用戶身份安裝在用戶主目錄中git
。在主目錄中是gitlabhq服務器軟件所在的位置以及存儲庫(盡管存儲庫位置是可配置的)。
裸存儲庫位於/home/git/repositories
。GitLab是一個ruby on rails應用程序,因此可以通過研究ruby on rails應用程序的工作原理來學習內部工作的細節。
為了通過SSH提供存儲庫,有一個名為gitlab-shell的附加應用程序,它安裝在/home/git/gitlab-shell
。
組件
1、repository:代碼庫,可以是硬盤或 NFS 文件系統
2、Nginx:Web 入口
3、數據庫:包含以下信息:
a、repository 中的數據(元數據,issue,合並請求 merge request 等)
b、可以登錄 Web 的用戶(權限)
4、Redis:緩存,負責分發任務
5、sidekiq:后台任務,主要負責發送電子郵件。任務需要來自 Redis
6、Unicorn:Gitlab 自身的 Web 服務器,包含了 Gitlab 主進程,負責處理快速/一般任務,與 Redis 一起工作。工作內容包括:
a、通過檢查存儲在 Redis 中的用戶會話來檢查權限
b、為 Sidekiq 制作任務
c、從倉庫(warehouse)取東西或在那里移動東西
7、gitlab-shell:用於 SSH 交互,而不是 HTTP。gitlab-shell 通過 Redis 與 Sidekiq 進行通信,並直接或通過 TCP 間接訪問 Unicorn
8、gitaly:后台服務,專門負責訪問磁盤以高效處理 git 操作,並緩存耗時操作。所有的 git 操作都通過 Gitaly 處理
9、gitlab-workhorse:反向代理服務器,可以處理與 Rails 無關的請求(磁盤上的 CSS、JS 文件等),處理 Git Push/Pull 請求,處理到 Rails 的連接(修改由 Rails 發送的響應或發送給 Rails 的請求,管理 Rails 的長期 WebSocket 連接等)。
10、mail_room:處理郵件請求。回復 GitLab 發出的郵件時,GitLab 會調用此服務
Sidekiq、Unicorn 和 GitLab-shell 是 GitLab 中處理任務的 3 個程序。
GitLab 應用程序是上述所有組件的集合。
GitLab社區版安裝
環境:CentOS 7.4
內存:2G
版本:社區版 gitlab-ce-11.3.12-ce.0.el7.x86_64.rpm
1、安裝必要的依賴項,還將在系統防火牆中打開HTTP和SSH訪問
安裝命令:sudo yum install -y curl policycoreutils-python openssh-server
激活命令:sudo systemctl enable sshd
啟用命令:sudo systemctl start sshd
防火牆命令:sudo firewall-cmd --permanent--add-service=http
sudo systemctl reload firewalld
2、安裝Postfix以發送通知電子郵件
安裝命令:sudo yum install postfix
激活命令:sudo systemctl enable postfix
啟用命令:sudo systemctl start postfix
3、下載GitLab軟件包(社區版),地址:https://packages.gitlab.com/gitlab/gitlab-ce。
4、安裝GitLab軟件包
命令:rpm -ivh gitlab-ce-11.3.12-ce.0.el7.x86_64.rpm
查看gitlab相關目錄,命令:find / -name gitlab
目錄結構
-
-
- /opt/gitlab/ ## 主目錄
- /etc/gitlab/ ## 放置配置文件
- /var/opt/gitlab/ ## 各個組件
- /var/log/gitlab/ ## 放置日志文件
- /var/opt/gitlab/git-data/repositories ##數據庫的地址
- /var/opt/gitlab/postgresql/data #gitlab組和項目的地址
-
gitlab配置文件/etc/gitlab/gitlab.rb
5、初始化gitlab,命令:gitlab-ctl reconfigure
6、啟動gitlab
啟動命令:gitlab-ctl start
停止命令:gitlab-ctl stop
重啟命令:gitlab-ctl restart
安裝后,已經自動安裝成開機啟動服務
服務啟動命令:systemctl start gitlab-runsvdir.service
服務停止命令:systemctl stop gitlab-runsvdir.service
服務重啟命令:systemctl restart gitlab-runsvdir.service
服務開機啟動命令:systemctl enable gitlab-runsvdir.service
取消開機啟動命令:systemctl disable gitlab-runsvdir.service
服務查看命令:systemctl list-unit-files
8、在瀏覽器使用ip地址進行訪問,默認端口80,地址:http://ip,首次訪問用戶名是root,需要設置密碼
注意:啟動后,訪問可能出現502,可能是內存的原因,gitlab非常消耗內存(本例內存2g)
9、設置完root用戶的密碼后,自動跳轉到等路界面,使用root/password(password新設置的密碼)
10、登陸成功,主頁