由於公司業務,需要上Git版本控制。 * 目前市面上比較有名的Git服務提供商,國外有GitHub、BitBucket、GitLab,國內有碼雲,Coding。 * 現有的服務商,對於免費的套餐都有一定的限制。比如:GitHub只允許建立免費的開源repository,建立私有的倉庫需要收費。Bit ...
由於公司業務,需要上Git版本控制。
* 目前市面上比較有名的Git服務提供商,國外有GitHub、BitBucket、GitLab,國內有碼雲,Coding。 * 現有的服務商,對於免費的套餐都有一定的限制。比如:GitHub只允許建立免費的開源repository,建立私有的倉庫需要收費。BitBucket允許建立無限制的私有項目,不過對於項目中參與的開發人員是有人數限制的,當團隊中開發者規模達到一定數量後,需要付費購買相應的套餐。GitLab社區版是免費的,不但能建立免費的私有倉庫而且沒有數量上限,參與人員也沒有數量限制,還能設置成員的許可權,甚至細緻到具體某條分支的許可權,以及強大的工作流等等。 GitLab很適合中小型非開源項目公司。
一、GitLab 簡介
GitLab 是一個利用Ruby on Rails 開發的開源版本控制系統,實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。 它擁有與GitHub類似的功能,能夠瀏覽源代碼,管理缺陷和註釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程式(Wall)進行交流。它還提供一個代碼片段收集功能可以輕鬆實現代碼復用,便於日後有需要的時候進行查找。 開源中國代碼托管平臺 碼雲 就是基於GitLab項目搭建。 GitLab 分為 GitLab Community Edition(CE) 社區版 和 GitLab Enterprise Edition(EE) 專業版。社區版免費,專業版收費,兩個版本在功能上的差異對比,可以參考官方對比說明二、GitLab 安裝和配置
安裝社區版,GitLab CE 版本:9.2.61、GitLab安裝
通過GitLab官方提供的Omnibus安裝包來安裝,相對方便。Omnibus安裝包套件整合了大部分的套件(Nginx、ruby on rails、git、redis、postgresql等),再不用額外安裝這些軟體,減輕了絕大部分安裝量。 GitLab官方安裝文檔 :CentOS7.x系統安裝依賴包,並配置postfix服務為GitLab郵件服務
# yum install curl openssh-server openssh-clients postfix cronie # systemctl start postfix.service # systemctl enable postfix.service如果僅僅做測試,就關閉防火牆。
systemctl stop firewalld.service #停止firewall
systemctl start firewalld.service #開啟firewall systemctl disable firewalld.service #禁止firewall開機啟動 systemctl enable firewalld.service # 開啟開機啟動firewall-cmd --state #查看預設防火牆狀態(關閉後顯示not running,開啟後顯示running)
如果正式搭建的話就打開HTTP和SSH埠
# iptables -I INPUT -m tcp -p tcp --dport 22 -j ACCEPT # iptables -I INPUT -m tcp -p tcp --dport 80 -j ACCEPT (這是centos6下的操作,centos7就自行百度,我這裡主要是搭建環境,讓gitlab跑起來,就關閉防火牆)兩種安裝源
- 從官方鏡像源安裝
- 從第三方鏡像源安裝
國內推薦使用清華大學開源軟體鏡像源。新建 /etc/yum.repos.d/gitlab-ce.repo,內容為: [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1 再執行 # yum makecache # 更新本地YUM緩存 # yum install gitlab-ce # 自動安裝最新版本
修改配置文件/etc/gitlab/gitlab.rb,綁定功能變數名稱
external_url 'http://gitlab.xxx.com' //如果沒有功能變數名稱就用ip地址即可啟動GitLab,使得配置生效
# gitlab-ctl reconfigure //此過程可能會等待很長時間在Dnspod中添加解析記錄
使用瀏覽器訪問GitLab,就訪問填寫上面external_url的值
首次訪問GitLab,系統會讓你重新設置管理員的密碼,設置成功後會返回登錄界面.//新版本可能會讓你登錄,自己註冊個賬號再登錄就行。如下圖:![]()
![]()
登錄成功後出現下麵頁面:
![]()
![]()
如果你還想要配置更多的細節,可以參考https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
GitLab安裝細節
主配置文件: /etc/gitlab/gitlab.rb GitLab 文檔根目錄: /opt/gitlab 預設存儲庫位置: /var/opt/gitlab/git-data/repositories GitLab Nginx 配置文件路徑: /var/opt/gitlab/nginx/conf/gitlab-http.conf Postgresql 數據目錄: /var/opt/gitlab/postgresql/dataGitLab由以下服務構成
- nginx: 靜態web伺服器
- gitlab-shell: 用於處理Git命令和修改authorized keys列表
- gitlab-workhorse: 輕量級的反向代理伺服器
- logrotate:日誌文件管理工具
- postgresql:資料庫
- redis:緩存資料庫
- sidekiq:用於在後臺執行隊列任務(非同步執行)
- unicorn:An HTTP server for Rack applications,GitLab Rails應用是托管在這個伺服器上面的。