天天看點

GitLab的安裝及使用教程

<b>gitlab基本介紹</b>

gitlab是利用ruby on rails一個開源的版本管理系統,實作一個自托管的git項目倉庫,可通過web界面進行通路公開的或者私人項目。

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

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

本篇教程将教你如何安裝部署及使用gitlab。

<b>git的家族成員</b>

<b>git</b>:是一種版本控制系統,是一個指令,是一種工具。

<b>gitlib</b>:是用于實作git功能的開發庫。

<b>github</b>:是一個基于git實作的線上代碼托管倉庫,包含一個網站界面,向網際網路開放。

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

<b>gitlab的服務構成</b>

<b>nginx</b>:靜态web伺服器。

<b>gitlab-shell</b>:用于處理git指令和修改authorized keys清單。

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

<b>logrotate</b>:日志檔案管理工具。

<b>postgresql</b>:資料庫。

<b>redis</b>:緩存資料庫。

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

<b>unicorn</b>:an http server for rack applications,gitlab rails應用是托管在這個伺服器上面的。

<b>gitlab工作流程</b>

GitLab的安裝及使用教程

<b>gitlab shell</b>

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的post-receive動作

<b>gitlab workhorse</b>

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

<b>gitlab環境部署</b>

ecs配置要求:<b>記憶體2g以上</b>

<b>方法一:鏡像部署</b>

gitlab代碼管理(centos 64位 | gitlab)

進入鏡像詳情頁面,單擊立即購買,按提示步驟購買 ecs 執行個體。

購買完成之後,登入“<b>ecs 管理控制台</b>”,在左邊導航欄裡,單擊“<b>執行個體</b>”,進入 ecs 執行個體清單頁,選擇所購 ecs 執行個體所在的地域,并找到所購 ecs 執行個體,在“<b>ip 位址</b>”列擷取該執行個體的公網 ip 位址。

注意:鏡像部署好後預設是禁止遠端通路的,是以直接通路ecs伺服器的公網ip是不能通路到gitlab的登入界面的,請先運作<b>/alidata</b>目錄下的<b>gitlab_opennet.sh</b>腳本,開啟遠端通路,然後再通過浏覽器通路公網ip來通路gitlab的首頁。

<b>方法二:手動部署:</b>

1、配置yum源

複制以下内容:

2、更新本地yum緩存

GitLab的安裝及使用教程

3、安裝gitlab社群版

GitLab的安裝及使用教程

<b>gitlab常用指令</b>

<b>gitlab使用</b>

<b>登入gitlab</b>

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

GitLab的安裝及使用教程

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

<b>建立project</b>

1、安裝git工具linux:安裝git,使用自帶的源安裝。

GitLab的安裝及使用教程

2、生成密鑰檔案:使用<b>ssh-keygen</b>生成密鑰檔案<b>.ssh/id_rsa.pub</b>。

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

3.在gitlab的首頁中建立一個project

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

4.添加ssh key導入步驟2中生成的密鑰檔案内容:

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

ssh key添加完成:

GitLab的安裝及使用教程

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

GitLab的安裝及使用教程

<b>簡單配置</b>

1、配置使用git倉庫的人員姓名(以上海駐雲為例)

2、配置使用git倉庫的人員email,填寫自己的公司郵箱

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

GitLab的安裝及使用教程

<b>上傳檔案</b>

1、進入到項目目錄

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

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

GitLab的安裝及使用教程

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

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

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

GitLab的安裝及使用教程

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

GitLab的安裝及使用教程

<b>更多基礎教程:</b>

<a href="https://yq.aliyun.com/articles/73866" target="_blank">快速搭建thinkphp架構教程</a>

<a href="https://yq.aliyun.com/articles/73814" target="_blank">快速搭建wordpress網站教程</a>

<a href="https://yq.aliyun.com/articles/71118" target="_blank">建網站怎麼選合适的網站模版</a>

<a href="https://yq.aliyun.com/articles/69785" target="_blank">如何幾分鐘内建好企業網站</a>

<a href="https://yq.aliyun.com/articles/75240" target="_blank">tomcat部署java web項目教程</a>

<a href="https://yq.aliyun.com/articles/78133" target="_blank">部署linux主機管理系統wdcp</a>

<a href="https://yq.aliyun.com/articles/79148" target="_blank">快速用discuz搭建論壇網站教程</a>

<a href="https://yq.aliyun.com/teams/61/type_blog-cid_156" target="_blank">雲市場頭條基礎教程頻道</a>

<b>更多開源軟體盡在雲市場:</b>

<a href="https://market.aliyun.com/software" target="_blank">https://market.aliyun.com/software</a>