gitlab的安裝及使用
gitlab是利用 ruby on rails 一個開源的版本管理系統,實作一個自托管的git項目倉庫,可通過web界面進行通路公開的或者私人項目。
它擁有與github類似的功能,能夠浏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的通路,它非常易于浏覽送出過的版本并提供一個檔案曆史庫。
團隊成員可以利用内置的簡單聊天程式(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 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 workhorse
gitlab workhorse是一個靈活的反向代理。它會處理一些大的http請求,比如檔案上傳、檔案下載下傳、git push/pull和git包下載下傳。其它請求會反向代理到gitlab rails應用,即反向代理給後端的unicorn。
ecs配置要求:記憶體2g以上
方法一:鏡像部署
鏡像名稱:gitlab代碼管理(centos 64位 | gitlab) | 鏡像幫助文檔
進入鏡像詳情頁面,單擊立即購買,按提示步驟購買 ecs 執行個體。
購買完成之後,登入”ecs 管理控制台”,在左邊導航欄裡,單擊”執行個體”,進入 ecs 執行個體清單頁,選擇所購 ecs 執行個體所在的地域,并找到所購 ecs 執行個體,在”ip 位址”列擷取該執行個體的公網 ip 位址。
注意:鏡像部署好後預設是禁止遠端通路的,是以直接通路ecs伺服器的公網ip是不能通路到gitlab的登入界面的,請先運作/alidata目錄下的gitlab_opennet.sh腳本,開啟遠端通路,然後再通過浏覽器通路公網ip來通路gitlab的首頁。
方法二:手動部署:
1、配置yum源
複制以下内容:
2、更新本地yum緩存
3、安裝gitlab社群版
gitlab常用指令:
登入gitlab
1、在浏覽器的位址欄中輸入ecs伺服器的公網ip即可登入gitlab的界面,第一次登入使用的使用者名和密碼為 root 和 5ivel!fe。
2、首次登入會強制使用者修改密碼。密碼修改成功後,輸入新密碼進行登入。
建立project
1、安裝git工具linux:安裝git,使用自帶的源安裝。
2、生成密鑰檔案
使用ssh-keygen生成密鑰檔案.ssh/id_rsa.pub。
3.在gitlab的首頁中建立一個project
4.添加ssh key導入步驟2中生成的密鑰檔案内容:
ssh key添加完成:
項目位址,該位址在進行clone操作時需要用到:
簡單配置
1、配置使用git倉庫的人員姓名
2、配置使用git倉庫的人員email,填寫自己的公司郵箱
3、克隆項目,在本地生成同名目錄,并且目錄中會有所有的項目檔案
1、進入到項目目錄
2、建立需要上傳到gitlab中的目标檔案
3、将目标檔案或者目錄拷貝到項目目錄下
4、将test.sh檔案加入到索引中
5、将test.sh送出到本地倉庫
6、将檔案同步到gitlab伺服器上
7、在網頁中檢視上傳的test.sh檔案已經同步到gitlab中
<a href="https://help.aliyun.com/document_detail/52857.html?spm=5176.doc53099.6.722.eb6cdh">原文連結</a>