前言
最近閑來無事,公司的web端總是出現(xiàn)胡亂push的現(xiàn)象:
比如:亂push到master上,然后又需要git reset --hard,導(dǎo)致了其他人的本地分支比遠(yuǎn)端超前,然后又各種git branch -D,總體來講不太安全吧。
試想:如果可以分支保護(hù)那就簡單多了,被保護(hù)的分支只有有權(quán)限的人可以push,那問題不就解決了么?
GitLab
記得上一家公司的服務(wù)器搭建的還挺好用的,自我感覺優(yōu)勢如下:
- 支持類似于github那樣強(qiáng)大而又簡單的UI交互型操作
- 支持安裝包部署在自己服務(wù)器上,安全、開源,并且免費(fèi)
- 支持郵件服務(wù)
- 支持分支保護(hù)等等
以上僅僅是本人總結(jié)
說了這么多,那我們趕緊開始吧,不過這只是我的初步學(xué)習(xí),后期會持續(xù)更新。
正文
1. SSH連接CentOS服務(wù)器
/**
root 【用戶名】
192.168.1.1 【IP地址】
*/
ssh root@192.168.1.1
- 如果之前配置過ssh密鑰,直接連接,沒有配置的話,輸入對應(yīng)用戶的(示例中為root)的密碼
- 說明:本人目前是iOS開發(fā)者,對連接服務(wù)器一竅不通,所以講的略微詳細(xì),還望勿怪。
2. Update yum
yum update
- yum:開源包管理工具,類似于brew,ruby
3. 安裝并配置必要的依賴
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
- 解釋說明,一共配置三個依賴:
- 安裝配置ssh
- 安裝配置postfix,用于郵件通知
- 配置防火墻
4. 添加GitLab包服務(wù)器并安裝包
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
- 下載包時間比較長,印象大小是300M+
5. GitLab 基本配置
GitLab 的相關(guān)參數(shù)配置都存在 /etc/gitlab/gitlab.rb 文件里,每次配置完成之后需要執(zhí)行gitlab-ctl reconfigure,進(jìn)行重新配置才能生效。
- 進(jìn)入編輯
gitlab.rb文件
vi /etc/gitlab/gitlab.rb
- 執(zhí)行修改的配置
sudo gitlab-ctl reconfigure
- 注意事項:
- 如果中間出現(xiàn)“紅色”error,那可能執(zhí)行失敗。
- 默認(rèn)配置前面有“#”,是被注釋的,需要刪除最前面的“#”
5.1 配置URL
打開 /etc/gitlab/gitlab.rb 配置文件,修改 external_url 'http://ip_address'為 external_url 'http://ip_address:new-port'
external_url 'http://ip_address:new-port'
- 注意事項
- 如果有域名,填入域名也行,沒有域名,填入IP地址即可
- 若要生效,需要退出
vi編輯,執(zhí)行sudo gitlab-ctl reconfigure命令,下面配置一樣,接下來不再重復(fù)
5.2 SMTP郵箱配置
以下是 163 郵箱的配置參考(其他郵箱可以參照上面的官方示例)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "test@163.com" //需要自行修改
gitlab_rails['smtp_password'] = "password" //需要自行修改
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "test@163.com" // 必須與上面的郵箱一樣
- 注意事項
- 郵箱需要開啟 SMTP 協(xié)議
5.3 頭像配置
GitLab 默認(rèn)使用的是 Gravatar 頭像服務(wù),不過現(xiàn)在貌似 Gravatar 國內(nèi)好像訪問不了,導(dǎo)致 GitLab 默認(rèn)頭像破裂,無法顯示,可以替換為多說 Gravatar 服務(wù)器。打開 /etc/gitlab/gitlab.rb 配置文件,修改gitlab_rails['gravatar_plain_url']
gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
再分別執(zhí)行以下命令即可
gitlab-ctl reconfigure
gitlab-rake cache:clear RAILS_ENV=production
6. Web初始化設(shè)置
在自己的電腦上,打開瀏覽器。輸入剛才配置URL,剛進(jìn)去設(shè)置root的用戶名和密碼。
登陸root后,增加group,project,member。
到此為止,完成部署,可以盡情的享受gitlab帶來的暢快體驗。
- 說明:本教程中不包含為
GitLab增加漢化包,想要漢化的朋友自己Google吧,本人認(rèn)為學(xué)好英語對于一個程序員來講真的很重要,就不說三遍了。
說明
- 本文會隨著本人的深入學(xué)習(xí)持續(xù)更新。
- 如果有想法,及時提出,歡迎指正和交流。