天天看點

GitLab的安裝及使用教程

GitLab安裝和使用

GitLab基本介紹

    GitLab是利用Ruby on Rails一個開源的版本管理系統,實作一個自托管的Git項目倉庫,可通過Web界面進行通路公開的或者私人項目。

與Github類似,GitLab能夠浏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的通路,它非常易于浏覽送出過的版本并提供一個檔案曆史庫。團隊成員可以利用内置的簡單聊天程式(Wall)進行交流。

    它還提供一個代碼片段收集功能可以輕松實作代碼複用,便于日後有需要的時候進行查找。

Git的家族成員

    Git:是一種版本控制系統,是一個指令,是一種工具。

    Gitlib:是用于實作Git功能的開發庫。

    Github:是一個基于Git實作的線上代碼托管倉庫,包含一個網站界面,向網際網路開放。

    GitLab:是一個基于Git實作的線上代碼倉庫托管軟體,你可以用gitlab自己搭建一個類似于Github一樣的系統,一般用于在企業、學校等内部網絡搭建git私服。

Gitlab的服務構成

Nginx:靜态web伺服器。

gitlab-shell:用于處理Git指令和修改authorized keys清單。

gitlab-workhorse: 輕量級的反向代理伺服器。

logrotate:日志檔案管理工具。

postgresql:資料庫。

redis:緩存資料庫。

sidekiq:用于在背景執行隊列任務(異步執行)。

unicorn:An HTTP server for Rack applications,GitLab Rails應用是托管在這個伺服器上面的。

GitLab工作流程

GitLab的安裝及使用教程

GitLab Shell

GitLab Shell有兩個作用:為GitLab處理Git指令、修改authorized keys清單。

當通過SSH通路GitLab Server時,GitLab Shell會:

  • 限制執行預定義好的Git指令(git push, git pull, git annex)
  • 調用GitLab Rails API 檢查權限
  • 執行pre-receive鈎子(在GitLab企業版中叫做Git鈎子)
  • 執行你請求的動作 處理GitLab的post-receive動作
  • 處理自定義的post-receive動作

當通過http(s)通路GitLab Server時,工作流程取決于你是從Git倉庫拉取(pull)代碼還是向git倉庫推送(push)代碼。

如果你是從Git倉庫拉取(pull)代碼,GitLab Rails應用會全權負責處理使用者鑒權和執行Git指令的工作;

如果你是向Git倉庫推送(push)代碼,GitLab Rails應用既不會進行使用者鑒權也不會執行Git指令,它會把以下工作交由GitLab Shell進行處理:

  1. 執行你請求的動作
  2. 處理GitLab的post-receive動作

GitLab Workhorse

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

Gitlab環境部署

環境要求:記憶體不低于2G

1.方法一:通過yum源安裝:

1.1 配置yum源

複制代碼

vim /etc/yum.repos.d/gitlab-ce.repo      

複制以下内容:

[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key      

1.2、更新本地yum緩存

sudo yum makecache      
GitLab的安裝及使用教程

1.3、安裝GitLab社群版

sudo yum install gitlab-ce        #自動安裝最新版
sudo yum install gitlab-ce-x.x.x    #安裝指定版本      
GitLab的安裝及使用教程

2.方法二:通過rpm包進行安裝

 2.1 下載下傳rpm包

  gitlab通過下載下傳rpm包內建了它所需要的軟體,簡化安裝步驟,rpm包可以從官網上或清華鏡像源擷取

  https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/.

 下載下傳最新的版本:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm

[root@otrs004097 opt]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
[root@otrs004097 opt]# rpm -ivh gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
或者
[root@otrs004097 opt]#yum localinstall -y gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
      

2.2 修改配置

[root@otrs004097 ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.4.97'

[root@otrs004097 ~]# gitlab-ctl reconfigure #####重新加載配置      

 注意:要保留8080端口否則會報錯的。

[root@otrs004097 ~]# vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb 
  listen "127.0.0.1:8080", :tcp_nopush => true

      
[root@otrs004097 ~]# gitlab-ctl reconfigure #####重新加載配置      

備注:gitlab的守護程序是會預設開啟nginx的,如果想要關閉,可以嘗試一下操作

   gitlab-ctl stop nginx

   gitlab-ctl restart nginx

如果想要釋放資源,關閉gitlab時,可以嘗試一下操作

   gitlab-ctl stop

GitLab常用指令

GitLab的安裝及使用教程
sudo gitlab-ctl start    # 啟動所有 gitlab 元件;
sudo gitlab-ctl stop        # 停止所有 gitlab 元件;
sudo gitlab-ctl restart        # 重新開機所有 gitlab 元件;
sudo gitlab-ctl status        # 檢視服務狀态;
sudo gitlab-ctl reconfigure        # 啟動服務;
sudo vim /etc/gitlab/gitlab.rb        # 修改預設的配置檔案;
gitlab-rake gitlab:check SANITIZE=true --trace    # 檢查gitlab;
sudo gitlab-ctl tail        # 檢視日志;      
GitLab的安裝及使用教程

GitLab使用

登入GitLab

、在浏覽器的位址欄中輸入ECS伺服器的公網IP即可登入GitLab的界面,第一次登入使用的使用者名和密碼為 root 和 5iveL!fe。

GitLab的安裝及使用教程

2、首次登入會強制使用者修改密碼。密碼修改成功後,輸入新密碼進行登入。

建立Project

1、安裝Git工具

linux:安裝Git,使用自帶的源安裝。

yum install git           
GitLab的安裝及使用教程

2、生成密鑰檔案

 使用ssh-keygen生成密鑰檔案.ssh/id_rsa.pub。

GitLab的安裝及使用教程
GitLab的安裝及使用教程

3.在GitLab的首頁中建立一個Project

GitLab的安裝及使用教程
GitLab的安裝及使用教程

4.添加ssh key

導入步驟2中生成的密鑰檔案内容:

GitLab的安裝及使用教程
GitLab的安裝及使用教程

ssh key添加完成:

GitLab的安裝及使用教程
GitLab的安裝及使用教程

7、點選項目,檢視ssh位址和http位址

GitLab的安裝及使用教程

項目位址,該位址在進行clone操作時需要用到:

GitLab的安裝及使用教程

簡單配置

1、配置使用Git倉庫的人員姓名

git config --global user.name "MyGit"       

2、配置使用Git倉庫的人員email

    填寫自己的公司郵箱

git config --global user.email "[email protected]"       

3、克隆項目

   在本地生成同名目錄,并且目錄中會有所有的項目檔案

git clone git@iZbp1h7fx16gkr9u4gk8v3Z:root/test.git      
GitLab的安裝及使用教程

上傳檔案

1、建立目錄,并進入到項目目錄

    mkdir  /root/test

cd  /root/test      

2、建立需要上傳到GitLab中的目标檔案

echo “test” >  /root/test.sh      

3、将目标檔案或者目錄拷貝到項目目錄下

cp /root/test.sh ./       
GitLab的安裝及使用教程

4、将test.sh檔案加入到索引中

git add test.sh       

5、将test.sh送出到本地倉庫

git commit -m “test.sh”      

6、将檔案同步到GitLab伺服器上

git push -u origin master       
GitLab的安裝及使用教程

7、檢視代碼

 在網頁中檢視上傳的test.sh檔案已經同步到GitLab中

GitLab的安裝及使用教程