近期想學(xué)習(xí)Git,公司目前都是使用的SVN,以下是學(xué)習(xí)搭建一個GitLab服務(wù)器的記錄總結(jié)。
轉(zhuǎn)載自http://www.reibang.com/p/b04356e014fa欺殿,稍作整理而來脖苏。
@Author Jacky Wang ,
轉(zhuǎn)載請注明出處 http://www.reibang.com/p/e51204f935c6
一定踱、Git及GitLab的介紹
1.1 Git的優(yōu)點
-
Git是分布式的,SVN不是
Git分布式本地就可以用亦歉,可以隨便保存各種歷史痕跡畅哑,不用擔(dān)心污染服務(wù)器,連不上服務(wù)器也能提交代碼赛蔫、查看log
-
GIT分支和SVN的分支不同
分支在SVN中實際上是版本庫中的一份copy,而git一個倉庫是一個快照鞠值,所以git 切換渗钉、合并分支等操作更快速鳄橘。 如下圖。
- Git有一個強大的代碼倉庫管理系統(tǒng) - GitLab
可以很方便的管理權(quán)限、代碼review宝磨,創(chuàng)建盅安、管理project
1.2 GitLab與GitHub的區(qū)別
GitLab
和GitHub
一樣屬于第三方基于Git
開發(fā)的作品,免費且開源窿祥。
不同的是蝙寨,GitLab
是可以部署到自己的服務(wù)器上墙歪,數(shù)據(jù)庫等一切信息都掌握在自己手上,適合團(tuán)隊內(nèi)部協(xié)作開發(fā)靠胜。簡單來說可把GitLab
看作個人版的GitHub
毕源。
1.3 GitLab的介紹
GitLab:是一個基于Git實現(xiàn)的在線代碼倉庫托管軟件,你可以用gitlab自己搭建一個類似于Github一樣的系統(tǒng)址愿,一般用于在企業(yè)冻璃、學(xué)校等內(nèi)部網(wǎng)絡(luò)搭建git私服。
功能:Gitlab 是一個提供代碼托管歌粥、提交審核和問題跟蹤的代碼管理平臺失驶。對于軟件工程質(zhì)量管理非常重要。
版本:GitLab 分為社區(qū)版(CE) 和企業(yè)版(EE)嬉探。
配置:建議CPU2核涩堤,內(nèi)存2G以上。
1.3.1 Gitlab的服務(wù)構(gòu)成:
Nginx:靜態(tài)web服務(wù)器吁系。
gitlab-shell:用于處理Git命令和修改authorized keys列表白魂。(Ruby)
gitlab-workhorse: 輕量級的反向代理服務(wù)器。(go)
GitLab Workhorse是一個敏捷的反向代理蕴坪。它會處理一些大的HTTP請求背传,比如文件上傳台夺、文件下載、Git push/pull和Git包下載挺狰。其它請求會反向代理到GitLab Rails應(yīng)用买窟,即反向代理給后端的unicorn丰泊。
logrotate:日志文件管理工具。
postgresql:數(shù)據(jù)庫始绍。
redis:緩存數(shù)據(jù)庫瞳购。
sidekiq:用于在后臺執(zhí)行隊列任務(wù)(異步執(zhí)行)。(Ruby)
unicorn:An HTTP server for Rack applications亏推,GitLab Rails應(yīng)用是托管在這個服務(wù)器上面的学赛。(Ruby Web Server,主要使用Ruby編寫)
二年堆、GitLab服務(wù)器的搭建
2.1 環(huán)境配置
- 系統(tǒng):此次使用的是CentOS 7
- CPU:建議雙核以上
-
內(nèi)存:2GB(官方建議4GB以上)
2.2 GitLab
服務(wù)的安裝
2.2.1 使用yum
安裝GitLab
所需依賴
清華大學(xué)鏡像源:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce
- 添加
GitLab
所需依賴庫
vim /etc/yum.repos.d/gitlab_gitlab-ce.repo
內(nèi)容為:
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
-
安裝
GitLab
所需依賴sudo yum -y install curl openssh-server openssh-clients postfix cronie sudo service postfix start sudo chkconfig postfix on sudo yum -y install lokkit #這句是用來做防火墻的,避免用戶通過ssh方式和http來訪問盏浇。 sudo lokkit -s http -s ssh
-
安裝
GitLab
sudo yum makecache sudo yum -y install gitlab-ce sudo gitlab-ctl reconfigure #Configure and start GitLab
-
GitLab
配置文件修改vim /etc/gitlab/gitlab.rb #外部訪問url(經(jīng)過編譯后,自動將這個配置編譯到nginx配置绢掰,nginx就無需配置了) external_url 'http://192.168.5.124' #默認(rèn)值就是8080痒蓬。如果端口被占用,可將8080修改為其它(例如:9090) unicorn['port'] = 8080 ps:external_url就是最后也就是git資源的路徑滴劲,如: git@192.168.5.124:root/repo1.git http://192.168.5.124/root/repo1.git
-
配置域名(經(jīng)過第4步的配置這一步可省略攻晒,在
gitlab-ctl reconfigure
時會自動配置完畢)vim /var/opt/gitlab/nginx/conf/gitlab-http.conf 內(nèi)容: # 外網(wǎng)訪問的端口,如果服務(wù)器已經(jīng)有服務(wù)器占用了80班挖,那么這里可以改成其它 listen *:80; server_name http://192.168.5.124; set $http_host_with_default "http://192.168.5.124"; ps: 這里的server_name填寫服務(wù)器對應(yīng)的域名即可
- 修改密碼
gitlab-rails console production
user = User.where(id:1).first
user.password='12345678'
user.save!
exit
-
使修改的配置生效
#使配置生效 gitlab-ctl reconfigure #重新啟動GitLab gitlab-ctl restart
2.2.2 GitLab
常用命令
gitlab-ctl start # 啟動所有 gitlab 組件鲁捏;
gitlab-ctl stop # 停止所有 gitlab 組件;
gitlab-ctl restart # 重啟所有 gitlab 組件萧芙;
gitlab-ctl status # 查看服務(wù)狀態(tài)给梅;
vim /etc/gitlab/gitlab.rb # 修改gitlab配置文件;
gitlab-ctl reconfigure # 重新編譯gitlab的配置末购;
gitlab-ctl show-config #驗證配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 檢查gitlab虎谢;
gitlab-ctl tail # 查看日志盟榴;
gitlab-ctl tail nginx/gitlab_access.log
gitlab-ctl uninstall #刪除gitlab(保留數(shù)據(jù))
gitlab-ctl cleanse #刪除所有數(shù)據(jù),從新開始
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看gitlab版本
注意:執(zhí)行 reconfigure 命令會把gitlab的nginx組件的配置還原婴噩,導(dǎo)致自定義修改的端口以及域名等都沒有了擎场。
2.2.3 常用目錄
日志地址:/var/log/gitlab/ # 對應(yīng)各服務(wù)的打印日志
服務(wù)地址:/var/opt/gitlab/ # 對應(yīng)各服務(wù)的主目錄
2.3 登陸GitLab
后臺管理頁面
本機安裝好Git
程序,然后登錄到GitLab
后臺:我這里的地址就是之前配置的http://192.168.1.124
几莽。
測試能否成功連接步驟:
2.3.1 GitLab
后臺新建項目庫
在GitLab后臺新建庫repo1.
2.3.2 本機新建測試文件HelloGit.txt
本機新建文件LocalGit/repo1/HelloGit.txt.
2.3.3 創(chuàng)建本地Git
庫
右鍵使用turtoiseGit工具選擇Git create responsitory創(chuàng)建本地Git庫迅办。
2.3.4 提交并推送到遠(yuǎn)程Git
服務(wù)器
1. 選擇git commit提交代碼到本地庫。
2. 選擇git sync章蚣,填入GitLab后臺新建項目時得到的git倉庫連接,這里以http連接為例.
http://192.168.5.124/root/repo1.git
6. 如果能成功提交即成功.