GitLab搭建以及配置

2021-07-26 13:18:11 字數 2599 閱讀 4913

gitlab搭建以及配置

作者區域 作者

tsyeyuanfeng關注使用者按鈕

關注文章資料資訊

如果是當前作者,加入編輯按鈕

文章內容

一、系統環境

二、安裝版本

三、安裝方式

以前試過原始碼安裝,過程痛苦無比。此次選擇官方提供的gitlab-ce omnibus安裝包。gitlab官網上有詳細的安裝說明,根據自己的作業系統選擇相應的版本,按步驟操作即可。

四、安裝過程

gitlab中文社群:

五、gitlab服務構成

gitlab由以下服務構成:

重點講一下gitlab-shell和gitlab-workhorse。

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進行處理:

呼叫gitlab rails api 檢查許可權

執行pre-receive鉤子(在gitlab企業版中叫做git鉤子)

執行你請求的動作

處理gitlab的post-receive動作

處理自定義的post-receive動作

也許你會奇怪在通過http(s)推送(push)**的情況下,gitlab rails應用為什麼不在gitlab shell之前進行鑑權。這是因為gitlab rails應用沒有解析

git push

命令的邏輯。好的方法是將這些解析**放在乙個地方,這個地方就是gitlab shell,這樣我們就可以在通過ssh進行訪問時重用這段**。實際上,gitlabshell在執行

git push

命令時根本不會進行許可權檢查,它是依賴於pre-receive鉤子進行許可權檢查的。而當你執行

git pull

命令時,許可權檢查是在命令執行之前的。對

git pull

命令的許可權檢查要簡單得多,因為你只需要檢查乙個使用者是否可以訪問這個倉庫就可以了(不需要檢查分支許可權)。

好吧,gitlab shell這段話都是翻譯官網的。鏈結在這裡

最後一段話有點拗口,我對此還是有一點問題的:既然你把

git push

的邏輯都放在gitlab shell裡面了,為什麼不把

git pull

的邏輯也都放在裡面提供重用呢?

猜想:git pull

這段邏輯無法重用,因為通過http(s)方式訪問時,要讀取倉庫的資料並且把這些資料封裝成http包返回給客戶端;而通過ssh方式訪問時,倉庫**資料是通過ssh資料報返回的。兩種訪問方式返回資料的封裝方式不一樣,所以也沒有必要提供重用。但是我覺得讀取倉庫資料這段邏輯應該還是重用了的。

gitlab workhorse

六、gitlab工作流程

gitlab工作流程圖

七、配置

配置考量

配置過程

八、關於gitlab-ci

gitlab-ce 8.0以上的版本已經將gitlab-ci整合進了gitlab裡面,並且是預設開啟的。所以不需要像以前一樣再單獨安裝gitlab-ci並且為gitlab-ci開啟單獨的server。如下圖所示:

gitlab-ci示意圖

日常筆記

舉報文章

如果覺得我的文章對您有用,請隨意打賞。您的支援將鼓勵我繼續創作!

Gitlab搭建以及CI CD

1,gitlab runner安裝以及配置 2,指定runner clone倉庫的位址 sudo vi etc gitlab runner config.toml 指定 clone url 3,gitlab 安裝以及指定https http方式執行 sudo vi etc gitlab gitlab...

Gitlab 搭建與配置

1.安裝gitlab依賴包 yum install curl openssh server openssh clients postfix cronie polucyroreutils python y 2.新增官方源 curl sudo bash 3.安裝gitlab yum install gi...

Git秘鑰生成以及Gitlab配置

安裝git 詳見 開通gitlab 開通需要諮詢所在公司的gitlab管理員 賬號後,本地git倉庫和gitlab倉庫仍然不能傳輸專案,原因是要通過ssh加密才能傳輸,所以需要讓gitlab認證本地的ssh key 認證之前,則先使用git生成ssh key ssh 秘鑰預設儲存在賬戶的主目錄下的 ...