gitlab 安裝和基本介紹
1 環境簡介
官方相關介紹:
硬件要求
. 存儲
必要的硬盤空間在很大程度上取決於您想要存儲在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 安裝相關依賴
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源
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
4 安裝軟件
yum install gitlab-ce-11.0.6-ce.0.el7.x86_64
5 配置相關參數 URL 訪問地址配置
6 配置訪問相關解析
7 更新gitlab 配置
更新前需保證80端口未被占用,否則不能啟動,因為其中的nginx代理默認啟動的是80端口,若需更改,則需要在/etc/gitlab/gitlab.rb 中配置相關的nginx配置,切記,不能配置8080,因為8080已被gitlab內部配置默認占用unicorn master(此處也可改變),如果改成其他端口,則URL應寫成server10.com:8060即可訪問gitlab
查看是否成功
查看服務狀態
8 登錄和基本語言配置
登錄修改root密碼
通過root用戶名和修改後的密碼進行登錄測試
設置環境為簡體中文
保存並更新配置
查看
二 gitlab配置文件介紹及插件介紹
1 配置文件介紹
1 主配置文件介紹
其中包含所有的主配置的情況,組件的配置,其配置後需要進行reconfigure 進行生效配置並重啟方可生效,其生效後的結果在各組件目錄中可以看到
2 主目錄
3 各個組件目錄
4 放置日誌文件
2 插件介紹
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"
三 配置郵件服務器
四 配置項目相關
1 創建用戶組
2 創建項目(在指定的用戶組中)
3 創建用戶
4 用戶加組
5 登陸用戶
6 配置客戶端
7 配置文件並上傳
8 創建分支
9 保證master分支不能上傳
五 gitlab 備份與恢復
1 通過配置文件進行備份配置
2 手動進行備份和恢復
1 進入gitlab備份目錄並進行備份
命令:
gitlab-rake gitlab:backup:create
2 刪除gitlab中的項目
3 關閉相應的服務
4 進行備份恢復
直接輸入yes
5 進行配置並啟動
6 查看是否恢復成功
7 配置定時任務進行定時備份
30 00 5 /usr/bin/gitlab-rake gitlab:backup:create &> /dev/null && echo "gitlab 備份成功" | mail -s "gitlab 備份" [email protected]
gitlab 安裝和基本介紹