1. 安裝VMware和CentOS
本教程采用CentOS6.6
配置靜態IP參考: https://www.cnblogs.com/linyufeng/p/8515337.html
2. 安裝必備Linux插件
(安裝過可以不用安裝)
yum install -y vim wget
3. 准備安裝GitLab
yum install -y postfix sshd policycoreutils-python
postfix
郵件通知sshd
ssh服務(一般系統已經有了,可以不裝)policycoreutils-python
GitLab必備依賴
設置postfix開機自啟: chkconfig --add postfix
4. 開始安裝GitLab
官網下載地址: https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=10.0.2

以CentOS 6 為例: https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/6/gitlab-ce-10.0.2-ce.0.el6.x86_64.rpm
安裝方式2種: 使用yum 和 rpm包,本文介紹yum方式
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum install -y gitlab-ce-10.0.2-ce.0.el6.x86_64
5. 配置GitLab
主要配置兩個地方: 訪問GitLab的IP地址和發送郵件的賬號配置
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.183.200' # 你自己的IP
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '你的郵箱'
gitlab_rails['gitlab_email_display_name'] = '郵件名字'
### GitLab email server settings
### 這里郵件服務器使用的是QQ企業郵箱,163自行修改
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "你的郵箱"
gitlab_rails['smtp_password'] = "郵箱密碼"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
ESC保存並退出 :wq
6. 啟動GitLab
刷新配置: gitlab-ctl reconfigure
重啟服務: gitlab-ctl restart
7. 訪問GitLab
此時還不能訪問,需要關閉防火牆 service iptables stop
或者 在防火牆中開放80端口:
編輯iptables vi /etc/sysconfig/iptables
添加配置 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重啟防火牆 service iptables restart

第一次登錄需要修改root密碼, 密碼8位以上,修改完就可以登錄

GitLab初始界面

8. GitLab基本操作
添加用戶2種方式: root后台添加和自己注冊


用戶權限

- Regular: 可以訪問自己組和項目
- Admin: 可以訪問所有組和項目
添加組

組權限

- Private: 私用,只允許組成員可見
- Internal: 內部,所有登錄用戶可見
- Public: 公共,所有人可見
創建倉庫和添加成員到組,很簡單,不再贅述. 重點說下倉庫成員權限,

- Guest:可以創建issue、發表評論,不能讀寫版本庫
- Reporter:可以克隆代碼,不能提交,QA、PM可以賦予這個權限
- Developer:可以克隆代碼、開發、提交、push,RD可以賦予這個權限
- Master:可以創建項目、添加tag、保護分支、添加項目成員、編輯項目,核心RD負責人可以賦予這個權限
- Owner:可以設置項目訪問權限 - Visibility Level、刪除項目、遷移項目、管理組成員,開發組leader可以賦予這個權限
默認Developer角色不能push到master, master分支受保護;可以修改如下:

測試發郵件
gitlab-rails console
irb(main):003:0> Notify.test_email('郵箱', 'Message Subject', 'Message Body').deliver_now