GitLab有社區版(CE) 和企業版(EE),社區版是免費,對絕大部分公司來說功能是足夠用了 ,在企業內部搭建,可以創建私有項目。
下面介紹在CentOS7上安裝gitlab-ce社區版的步驟
1. 安裝前准備
在CentOS系統上安裝所需的依賴:ssh,防火牆,postfix(用於郵件通知) ,wget(用於從外網上下載插件)
以上這些可以不用考慮安裝,因為CentOS7中已經自帶安裝好了ssh,防火牆,wget
配置:建議CPU2核,內存4G以上,因為gitlab對系統要求比較高,啟動后占用很大內存,否則訪問會報502錯誤
2. 添加gitlab鏡像源並安裝gitlab服務器
鏡像地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
添加gitlab鏡像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
鏡像有點大,下載比較慢,根據網速快慢,需要等幾分鍾或者十幾分鍾
3. 安裝gitlab
安裝rpm包,安裝命令:
rpm -ivh gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
安裝過程需要些時間,安心等待,如果出現下圖,則說明安裝成功。
4. 修改gitlab配置文件,指定服務器ip和自定義端口:
輸入命令編輯配置文件:vim /etc/gitlab/gitlab.rb
#修改訪問URL #格式:external_url 'http://ip:端口' external_url 'http://192.168.80.128:8081' #配置時區(可以不用配置) gitlab_rails['time_zone'] = 'Asia/Shanghai'
ps:注意這里設置的端口不能被占用,默認是8080端口,如果8080已經使用,請自定義其它端口,並在防火牆設置開放相對應得端口
配置完以后還需要修改一處,去掉unicorn['port']=8080
前面的注釋#,並修改下端口號,注意和上面端口區分開。
如上, 默認端口是8080, 一般都會被占用, 所以修改為自己需要的端口;
進入編輯器后按“i”鍵進入編輯狀態,ESC鍵退出編輯狀態
退出並保存,命令輸入“:wq”
5. 防火牆開放端口
# 開放上面配置的external_url中的 8081端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
6. 重啟防火牆
firewall-cmd --reload
7. 查看端口號是否開啟
firewall-cmd --query-port=8081/tcp
8. 重置Gitlab(讓修改后的配置生效)
gitlab-ctl reconfigure
第一次重置過程需要大概幾分鍾時間,安心等待
9. 重啟Gitlab
gitlab-ctl restart
提示 "ok: run:"表示啟動成功
GitLab服務端常用命令:
gitlab-ctl start # 啟動所有 gitlab 組件; gitlab-ctl stop # 停止所有 gitlab 組件; gitlab-ctl restart # 重啟所有 gitlab 組件; gitlab-ctl status # 查看服務狀態; gitlab-ctl reconfigure # 刷新配置文件; vim /etc/gitlab/gitlab.rb # 修改默認的配置文件; gitlab-rake gitlab:check SANITIZE=true --trace # 檢查gitlab; gitlab-ctl tail # 查看日志;
10. 訪問Gitlab頁面
如果沒有域名,直接輸入服務器ip和指定端口進行訪問
初始管理員賬戶: root
注:首次訪問時,會自動進入管理員密碼設置頁面,重新設置下密碼,管理員默認賬戶為root
登錄后可進行語言設置:
Settings -> Preferences -> Localization -> Language -> 簡體中文
11. 502錯誤
如果確定上面配置步驟沒問題,但是訪問GitLab還報502錯誤,這是虛擬機內存不夠導致的,首先保證Gitlab可用運行內存大於4G,端口未被占用,否則跑不起來
12. 添加用戶
當管理員在Gitlab新建用戶后,系統會自動發送郵件到用戶郵箱,用戶通過點擊郵件鏈接可自己配置密碼;
ps: 創建用戶后,用戶將收到郵件,郵件可能被拉黑,請到垃圾郵箱中查閱;
Gitlab權限管理
Gitlab用戶在組中有五種權限:Guest、Reporter、Developer、Master(Maintainer)、Owner
Guest:可以創建issue、發表評論,不能讀寫版本庫
Reporter:可以克隆代碼,不能提交,QA、PM可以賦予這個權限
Developer:可以克隆代碼、開發、提交、push,RD可以賦予這個權限
Master:可以創建項目、添加tag、保護分支、添加項目成員、編輯項目,核心RD負責人可以賦予這個權限
Owner:可以設置項目訪問權限 - Visibility Level、刪除項目、遷移項目、管理組成員,開發組leader可以賦予這個權限
Gitlab中的組和項目有三種訪問權限:Private、Internal、Public
Private:只有組成員才能看到
Internal:只要登錄的用戶就能看到
Public:所有人都能看到
開源項目和組設置的是Internal