<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>
<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緩存
3、安裝gitlab社群版
<b>gitlab常用指令</b>
<b>gitlab使用</b>
<b>登入gitlab</b>
1、在浏覽器的位址欄中輸入ecs伺服器的公網ip即可登入gitlab的界面,第一次登入使用的使用者名和密碼為 root 和 5ivel!fe。
2、首次登入會強制使用者修改密碼。密碼修改成功後,輸入新密碼進行登入。
<b>建立project</b>
1、安裝git工具linux:安裝git,使用自帶的源安裝。
2、生成密鑰檔案:使用<b>ssh-keygen</b>生成密鑰檔案<b>.ssh/id_rsa.pub</b>。
3.在gitlab的首頁中建立一個project
4.添加ssh key導入步驟2中生成的密鑰檔案内容:
ssh key添加完成:
項目位址,該位址在進行clone操作時需要用到:
<b>簡單配置</b>
1、配置使用git倉庫的人員姓名(以上海駐雲為例)
2、配置使用git倉庫的人員email,填寫自己的公司郵箱
3、克隆項目,在本地生成同名目錄,并且目錄中會有所有的項目檔案
<b>上傳檔案</b>
1、進入到項目目錄
2、建立需要上傳到gitlab中的目标檔案
3、将目标檔案或者目錄拷貝到項目目錄下
4、将test.sh檔案加入到索引中
5、将test.sh送出到本地倉庫
6、将檔案同步到gitlab伺服器上
7、在網頁中檢視上傳的test.sh檔案已經同步到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>