14_Linux環(huán)境搭建GitLab服務器

近期想學習Git,公司目前都是使用的SVN,以下是學習搭建一個GitLab服務器的記錄總結(jié)。
轉(zhuǎn)載自http://www.itdecent.cn/p/b04356e014fa,稍作整理而來。

@Author Jacky Wang ,
轉(zhuǎn)載請注明出處 http://www.itdecent.cn/p/e51204f935c6

一、Git及GitLab的介紹

1.1 Git的優(yōu)點

  • Git是分布式的,SVN不是

    Git分布式本地就可以用,可以隨便保存各種歷史痕跡,不用擔心污染服務器,連不上服務器也能提交代碼、查看log
    
  • GIT分支和SVN的分支不同

    分支在SVN中實際上是版本庫中的一份copy,而git一個倉庫是一個快照,所以git 切換、合并分支等操作更快速。
    如下圖。
    
1.png
  • Git有一個強大的代碼倉庫管理系統(tǒng) - GitLab
可以很方便的管理權(quán)限、代碼review,創(chuàng)建、管理project

1.2 GitLab與GitHub的區(qū)別

GitLabGitHub一樣屬于第三方基于Git開發(fā)的作品,免費且開源。

不同的是,GitLab是可以部署到自己的服務器上,數(shù)據(jù)庫等一切信息都掌握在自己手上,適合團隊內(nèi)部協(xié)作開發(fā)。簡單來說可把GitLab看作個人版的GitHub

1.3 GitLab的介紹

GitLab:是一個基于Git實現(xiàn)的在線代碼倉庫托管軟件,你可以用gitlab自己搭建一個類似于Github一樣的系統(tǒng),一般用于在企業(yè)、學校等內(nèi)部網(wǎng)絡搭建git私服。
功能:Gitlab 是一個提供代碼托管、提交審核和問題跟蹤的代碼管理平臺。對于軟件工程質(zhì)量管理非常重要。
版本:GitLab 分為社區(qū)版(CE) 和企業(yè)版(EE)。
配置:建議CPU2核,內(nèi)存2G以上。

1.3.1 Gitlab的服務構(gòu)成:

Nginx:靜態(tài)web服務器。
gitlab-shell:用于處理Git命令和修改authorized keys列表。(Ruby)
gitlab-workhorse: 輕量級的反向代理服務器。(go)

GitLab Workhorse是一個敏捷的反向代理。它會處理一些大的HTTP請求,比如文件上傳、文件下載、Git push/pull和Git包下載。其它請求會反向代理到GitLab Rails應用,即反向代理給后端的unicorn。

logrotate:日志文件管理工具。
postgresql:數(shù)據(jù)庫。
redis:緩存數(shù)據(jù)庫。
sidekiq:用于在后臺執(zhí)行隊列任務(異步執(zhí)行)。(Ruby)
unicorn:An HTTP server for Rack applications,GitLab Rails應用是托管在這個服務器上面的。(Ruby Web Server,主要使用Ruby編寫)

二、GitLab服務器的搭建

2.1 環(huán)境配置

  1. 系統(tǒng):此次使用的是CentOS 7
  2. CPU:建議雙核以上
  3. 內(nèi)存:2GB(官方建議4GB以上)


    2.jpg

2.2 GitLab服務的安裝

2.2.1 使用yum安裝GitLab所需依賴

清華大學鏡像源:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce

  1. 添加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
  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
    
  2. 安裝GitLab

    sudo yum makecache
    sudo yum -y install gitlab-ce
    sudo gitlab-ctl reconfigure  #Configure and start GitLab
    
3.png
  1. GitLab配置文件修改

    vim /etc/gitlab/gitlab.rb
    
    #外部訪問url(經(jīng)過編譯后,自動將這個配置編譯到nginx配置,nginx就無需配置了)
    external_url 'http://192.168.5.124'
    #默認值就是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
    
  2. 配置域名(經(jīng)過第4步的配置這一步可省略,在gitlab-ctl reconfigure時會自動配置完畢)

    vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
    
    內(nèi)容:
    # 外網(wǎng)訪問的端口,如果服務器已經(jīng)有服務器占用了80,那么這里可以改成其它
    listen *:80;
    server_name http://192.168.5.124;
        
    set $http_host_with_default "http://192.168.5.124";
    
    ps: 這里的server_name填寫服務器對應的域名即可
    
  1. 修改密碼
gitlab-rails console production
user = User.where(id:1).first
user.password='12345678'
user.save!
exit
  1. 使修改的配置生效

    #使配置生效
    gitlab-ctl reconfigure
    #重新啟動GitLab 
    gitlab-ctl restart
    
4.png
2.2.2 GitLab常用命令
gitlab-ctl start    # 啟動所有 gitlab 組件;
gitlab-ctl stop        # 停止所有 gitlab 組件;
gitlab-ctl restart        # 重啟所有 gitlab 組件;
gitlab-ctl status        # 查看服務狀態(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組件的配置還原,導致自定義修改的端口以及域名等都沒有了。
2.2.3 常用目錄
日志地址:/var/log/gitlab/   # 對應各服務的打印日志 
服務地址:/var/opt/gitlab/   # 對應各服務的主目錄

2.3 登陸GitLab后臺管理頁面

本機安裝好Git程序,然后登錄到GitLab后臺:我這里的地址就是之前配置的http://192.168.1.124。

測試能否成功連接步驟:

2.3.1 GitLab后臺新建項目庫
在GitLab后臺新建庫repo1.
5.png
2.3.2 本機新建測試文件HelloGit.txt
本機新建文件LocalGit/repo1/HelloGit.txt.
6.png
2.3.3 創(chuàng)建本地Git
右鍵使用turtoiseGit工具選擇Git create responsitory創(chuàng)建本地Git庫。
2.3.4 提交并推送到遠程Git服務器
1. 選擇git commit提交代碼到本地庫。
2. 選擇git sync,填入GitLab后臺新建項目時得到的git倉庫連接,這里以http連接為例.
    http://192.168.5.124/root/repo1.git
6. 如果能成功提交即成功.
7.png
8.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容