gitlab 安裝和基本介紹

一 安裝gitlab

1 環境簡介

gitlab 安裝和基本介紹
官方相關介紹:

硬件要求
. 存儲
必要的硬盤空間在很大程度上取決於您想要存儲在GitLab中的存儲庫的大小,但根據經驗,您應該至少擁有與您的所有存儲庫合併佔用的空閒空間。
如果您希望將來靈活擴展硬盤空間,請考慮使用LVM進行安裝,以便在需要時添加更多硬盤。
除了本地硬盤驅動器,您還可以安裝支持網絡文件系統(NFS)協議的卷。此卷可能位於文件服務器,網絡連接存儲(NAS)設備,存儲區域網絡(SAN)或Amazon Web Services(AWS)彈性塊存儲(EBS)捲上。
如果你有足夠的RAM內存和最近的CPU,GitLab的速度主要受硬盤尋道時間的限制。快速驅動(7200 RPM及以上)或固態驅動器(SSD)將提高GitLab的響應能力。

. 中央處理器

• 1個核心最多支持100個用戶,但由於所有工作和後臺作業都在同一個核心上運行,因此應用程序可能會慢一點
• 2核是建議的核心數,最多支持500個用戶
• 4個核心最多可支持2,000個用戶
• 8個核心最多支持5,000個用戶
• 16個內核最多可支持10,000個用戶
• 32個核心最多可支持20,000個用戶
• 64個內核最多可支持40,000個用戶

. 內存

至少8GB可尋址內存來安裝gitlab,在運行gitlab之前,至少需要4GB可用空間,

建議至少有2BG交換,建議將內核的swappiness 設置爲較低水平10 足以
vim /etc/sysctl.conf
vm.swappiness = 10

. 數據庫

運行數據庫服務器至少要有5-10GB的可存儲空間,但具體要求取決於gitlab安裝的大小

強烈支持使用postgresql

Mysql/mariadb(不支持所有的gitlab功能)

Postgresql 要求

從GitLab 10.0開始,需要PostgreSQL 9.6或更高版本,並且不支持早期版本。我們強烈建議用戶使用PostgreSQL 9.6,因爲這是用於開發和測試的PostgreSQL版本。
使用PostgreSQL的用戶必須確保將pg_trgm擴展加載到每個GitLab數據庫中。可以通過對每個數據庫運行以下查詢來啓用此擴展(使用PostgreSQL超級用戶):
CREATE EXTENSION pg_trgm;
在某些系統上,您可能需要安裝額外的軟件包(例如 postgresql-contrib)以使此擴展可用。

. Gitlab geo 要求

如果您使用的是GitLab Geo,則跟蹤數據庫也需要postgres_fdw擴展名。
CREATE EXTENSION postgres_fdw;

. Unicorn

可以增加unicorn worker 的數量,有助於減少應用程序的響應時間並提高處理並行請求的能力

對於大多數情況,建議使用:CPU核心+1=unicorn worker

對於所有2GB及以上的機器,建議至少有3個,如果是1GB建議使用兩個

. redis和 sidekiq
Redis 存儲所有用戶會話和後臺任務隊列,redis的存儲要求很低,每個用戶大約25KB,sidekiq使用多線程進程處理後臺作業,此過程從整個redis堆棧(200M+)開始,但由於內存泄露,他可能會隨着時間的推移而增長,在非常活躍的服務器上,sidekiq進程可以使用1GB+內存

. Prometheus 及相關,使用默認設置,這些進程將消耗大概200M內存

2 安裝相關依賴

gitlab 安裝和基本介紹

gitlab 安裝和基本介紹

yum install -y vim lrzsz wget gcc gcc-c++ make makeconf cmake

yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui redis sudo wget crontabs logwatch logrotate perl-Time-HiRes git cmake libcom_err-devel.i686 libcom_err-devel.x86_64 nodejs cmake libicu-devel libicu openssl openssl-devel

3 下載並配置yum源

gitlab 安裝和基本介紹

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

gitlab 安裝和基本介紹

4 安裝軟件

yum install gitlab-ce-11.0.6-ce.0.el7.x86_64

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

5 配置相關參數 URL 訪問地址配置

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

6 配置訪問相關解析

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

7 更新gitlab 配置

更新前需保證80端口未被佔用,否則不能啓動,因爲其中的nginx代理默認啓動的是80端口,若需更改,則需要在/etc/gitlab/gitlab.rb 中配置相關的nginx配置,切記,不能配置8080,因爲8080已被gitlab內部配置默認佔用unicorn master(此處也可改變),如果改成其他端口,則URL應寫成server10.com:8060即可訪問gitlab
gitlab 安裝和基本介紹

gitlab 安裝和基本介紹
查看是否成功
gitlab 安裝和基本介紹
查看服務狀態
gitlab 安裝和基本介紹

8 登錄和基本語言配置

登錄修改root密碼
gitlab 安裝和基本介紹
通過root用戶名和修改後的密碼進行登錄測試
gitlab 安裝和基本介紹
設置環境爲簡體中文
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
保存並更新配置
gitlab 安裝和基本介紹
查看
gitlab 安裝和基本介紹

二 gitlab配置文件介紹及插件介紹

1 配置文件介紹

1 主配置文件介紹

其中包含所有的主配置的情況,組件的配置,其配置後需要進行reconfigure 進行生效配置並重啓方可生效,其生效後的結果在各組件目錄中可以看到
gitlab 安裝和基本介紹

gitlab 安裝和基本介紹

2 主目錄

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

3 各個組件目錄

gitlab 安裝和基本介紹

4 放置日誌文件

gitlab 安裝和基本介紹

2 插件介紹

gitlab 安裝和基本介紹
1 repository: 代碼庫,可以是硬盤或NFS文件系統
2 NGINX: web 入口
3 數據庫:包含信息
Repository 中的數據(元數據,issue,合併請求merge request等)
可以登錄的web用戶信息
4 Redis 緩存 ,負責分發信息
5 sidekq: 後臺任務,主要負責發送電子郵件,任務來自與redis
6 unicorn (gitlab rails):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-workshorse: 反向代理服務器,可以處理與redis無關的請求,磁盤上的CSS,JS 文件等),處理git push/pull 請求,處理redis的鏈接(修改有redis發送的響應或發送給redis請求,管理redis的長期web socket鏈接)

10 mail_room: 處理郵件請求,恢復gitlab發送的郵件時,gitlab會調用此服務.

大體原理:
gitlab 使用nginx將前端請求代理到UNicorn web 服務器,默認情況下,unicorn 與前端之間的通信是通過unix domain 套接字進行的,但也支持通過TCP請求轉發,web訪問前端/home/git/gitlab/pubilc繞過unicorn 服務來提供靜態頁面,上傳和預編譯資源,gitlab使用Unicorn web 提供網頁和gitlab api,使用sidekiq作爲作業隊列, 反過來,它使用redis 作爲作業信息,元數據和作業的非持久化數據後端。

gitlab應用程序使用mysql或postgresql 作爲持久化數據庫,保存用戶,權限,issue其他元數據等。

通過http/https提供repository時,gitlab使用gitlab API 來解釋授權和訪問以及提供git對象。

gitlab-shell 通過ssh提供repository,他管理/home/git/,ssh/authorized_keys 內的SSH密鑰,不應該手動編輯,gitlab-shell通過gitaly訪問bare repository 已提供git對象並與redis 進行通信以向sidekiq提交作業以供gitlab處理,gitlab-shell 查詢gitlab API一確定授權和訪問。

3 gitlab 忘記密碼

修改密碼爲"12345678"
gitlab 安裝和基本介紹

三 配置郵件服務器

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

四 配置項目相關

1 創建用戶組

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

gitlab 安裝和基本介紹

2 創建項目(在指定的用戶組中)

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

3 創建用戶

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

4 用戶加組

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

5 登陸用戶

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

6 配置客戶端

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

7 配置文件並上傳

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

8 創建分支

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

9 保證master分支不能上傳

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

五 gitlab 備份與恢復

1 通過配置文件進行備份配置

gitlab 安裝和基本介紹

2 手動進行備份和恢復

1 進入gitlab備份目錄並進行備份

命令:

gitlab-rake gitlab:backup:create

gitlab 安裝和基本介紹

2 刪除gitlab中的項目

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

3 關閉相應的服務

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

4 進行備份恢復

gitlab 安裝和基本介紹
直接輸入yes

5 進行配置並啓動

gitlab 安裝和基本介紹
gitlab 安裝和基本介紹

6 查看是否恢復成功

gitlab 安裝和基本介紹

7 配置定時任務進行定時備份

30 00 5 /usr/bin/gitlab-rake gitlab:backup:create &> /dev/null && echo "gitlab 備份成功" | mail -s "gitlab 備份" [email protected]

gitlab 安裝和基本介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章