一、GitLab 簡介
GitLab 是一個利用Ruby on Rails 開發的開源版本控制系統,實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。
它擁有與GitHub類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現代碼復用,便於日后有需要的時候進行查找。
開源中國代碼托管平台碼雲就是基於GitLab項目搭建。
GitLab 分為 GitLab Community Edition(CE) 社區版 和 GitLab Enterprise Edition(EE) 專業版。社區版免費,專業版收費,兩個版本在功能上的差異對比,可以參考官方對比說明
二、GitLab 安裝和配置
安裝社區版 GitLab CE 版本:9.2.6
通過GitLab官方提供的Omnibus安裝包來安裝,相對方便。Omnibus安裝包套件整合了大部分的套件(Nginx、ruby on rails、git、redis、postgresql等),再不用額外安裝這些軟件,減輕了絕大部分安裝量。
GitLab官方安裝文檔:CentOS6.x系統 CentOS7.x系統
1 安裝依賴包,並配置postfix服務為GitLab郵件服務可以參考官網命令執行
把external_url改成部署機器的域名或者IP地址。
external_url 'http://gitlab.hongsusu.cn'
2 啟動GitLab,使得配置生效
# gitlab-ctl reconfigure
登錄不上可能是防火牆的問題.
第一次啟動的時候,需要初始化大量的東西,經常會出現502錯誤,通常是由於內存不足的原因導致,所以需要准備好足夠的內存。官方推薦虛擬機中測試4GB內存基本就可以了。
三、GitLab 由以下服務構成
- nginx: 靜態web服務器
- gitlab-shell: 用於處理Git命令和修改authorized keys列表
- gitlab-workhorse: 輕量級的反向代理服務器
- logrotate:日志文件管理工具
- postgresql:數據庫
- redis:緩存數據庫
- sidekiq:用於在后台執行隊列任務(異步執行)
- unicorn:An HTTP server for Rack applications,GitLab Rails應用是托管在這個服務器上面的
四、常用命令
gitlab-ctl command (subcommand)
Service Management Commands |
|
start |
啟動所有服務 |
stop |
關閉所有服務 |
restart |
重啟所有服務 |
status |
查看所有服務狀態 |
tail |
查看日志信息 |
service-list |
列舉所有啟動服務 |
graceful-kill |
平穩停止一個服務 |
例子:
#啟動所有服務
gitlab-ctl start
#啟動單獨一個服務
gitlab-ctl start nginx
#查看日志,查看所有日志
gitlab-ctl tail
#查看具體一個日志,類似tail -f
gitlab-ctl tail nginx
help |
幫助 |
reconfigure |
修改配置文件之后,需要重新加載下 |
show-config |
查看所有服務配置文件信息 |
uninstall |
卸載這個軟件 |
cleanse |
刪除gitlab數據,重新白手起家 |
#顯示所有服務配置文件
例子:
gitlab-ctl show-config
Database Commands |
|
pg-upgrade |
更新postgresql版本 |
revert-pg-upgrade |
還遠先前的(離現在正在使用靠近的版本)一個數據庫版本 |
#卸載gitlab
gitlab-ctl uninstall