我們都知道GitHub隻有公開庫是免費的,而私有倉庫是需要花錢買的。是以我們可以想辦法自己搭建一個私有的,僅自己公司使用的。Gitlab是個不錯的選擇。在介紹它之前,先講述一下如何搭建指令行的git伺服器。
我這裡準備了兩台機器做這個實驗,一台作為伺服器,一台作為用戶端:
伺服器IP:192.168.77.134
用戶端IP:192.168.77.130
首先在伺服器上安裝git,指令如下:
yum -y install git
添加git使用者,并且設定shell為/usr/bin/git-shell,目的是為了不讓git使用者遠端登陸,并且在該使用者的家目錄下建立authorized_keys檔案,并更改屬主、屬組和權限,用來存用戶端機器上的公鑰:
然後把用戶端上的公鑰複制到伺服器的authorized_keys檔案中,如果沒有密鑰則使用ssh-keygen指令生成,過程我就不示範了。
接着到用戶端上使用ssh連接配接git使用者,輸出結果如下代表沒問題,因為我們設定了不讓git使用者遠端登陸:
完成以上操作後,在服務端建立git倉庫的目錄:
在該目錄下建立一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,是以不讓使用者直接登入到伺服器上去改工作區,并且伺服器上的Git倉庫通常都以.git結尾:
注意:以上是在git伺服器上操作的,平時git伺服器是不需要開發人員登入修改代碼的,它僅僅是充當着一個伺服器的角色,就像github一樣,平時的add、commit等指令都是在我們自己的pc上操作。
在用戶端上克隆遠端倉庫:
此時目前目錄下就會生成一個sample的目錄,這個就是我們克隆的遠端倉庫了。進入到這裡面,可以開發一些代碼,然後push到遠端:
然後到另一個目錄下進行克隆,看看是否能從服務端上克隆剛剛送出上去的檔案:
如上,可以成功克隆則代表該git伺服器已經能夠正常提供服務了。
gitlab官網:
<a href="https://about.gitlab.com/gitlab-com/">https://about.gitlab.com/gitlab-com/</a>
官方的安裝文檔:
<a href="https://about.gitlab.com/installation/?version=ce#centos-7">https://about.gitlab.com/installation/?version=ce#centos-7</a>
注:官方說安裝gitlab要求伺服器記憶體最好不少于4g ( 我之前試了一下使用2g的機器去搭gitlab,卡頓挺明顯的,是以最好還是使用4個g的記憶體 ) ,gitlab的社群版是免費的,企業版則是收費的。
由于官方提供的yum源是國外的,而且包的大小有幾百M,是以下載下傳會很慢,我這裡使用的是國内的鏡像源進行安裝,編輯檔案如下:
然後就可以使用yum安裝了:
注:如果使用這種方式安裝不成功的話,可以嘗試其他的鏡像源,還是不行的話,就按照官方文檔進行安裝,雖然會慢一點。
安裝完後使用以下指令進行配置,這個過程可能需要花幾分鐘:
檢查程序和端口:
gitlab-ctl指令可以用于重新開機、啟動、停止gitlab服務以及檢視服務狀态:
gitlab-ctl {stop | restart | star | status}
現在就可以在浏覽器上通路gitlab了,如下可以看到第一步就是設定密碼,設定的是root使用者的密碼:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCM581dvRWYoNHLwEzX5xCMx8FesU2cfdGLwATMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLiZDZ2YjZyMWMzMzYxgzMjJGO2YWMhVTMhFjN3Q2NmZzLcZTMvwVMwgTMwIzLcd2bsJ2LcNXZnFWbp9CXt92Yu8GdjFTNuITavw1LcpDc0RHaiojIsJye.png)
設定完之後就可以使用root賬戶登入了:
登入後的界面:
先來看看如何配置gitlab内置的nginx伺服器,配置檔案所在的路徑如下:
域名和監聽端口在gitlab-http.conf檔案中配置,如果機器上隻跑一個gitlab服務就不用配置保持預設即可。
在gitlab上建立一個使用者組:
然後在目前這個組裡建立一個項目:
點選右上角頭像,在settings界面裡,添加密鑰認證:
gitlap的使用者可以自己注冊,也可以由管理者進行建立,以下示範由管理者來建立使用者:
剩下的預設即可,然後點選頁面下方的Create user按鈕。
建立完成後,還可以點選Edit按鈕編輯該使用者,例如修改個密碼什麼的:
儲存修改後,退出目前使用者,看看是否可以登入建立的使用者:
然後再重新登入即可,我這裡是登入成功的:
點選Create a project可以建立一個新項目:
建立成功:
剩下的操作就和GitHub很像了,而且平時我們在這個服務端上也都隻是建立或編輯組和使用者,大部分的操作都是在pc完成的。
gitlab常用指令:
<a href="https://www.cnyunwei.cc/archives/1204">https://www.cnyunwei.cc/archives/1204</a>
gitlab自帶了一個工具用于備份和恢複,指令如下:
如果資料量大的話,需要蠻久的。這個操作會備份:組、使用者、項目以及倉庫檔案等。
備份目錄在/var/opt/gitlab/backups目錄下:
備份檔案名的字首格式依次是:時間戳、日期、gitlab版本号
恢複資料需要停掉以下兩個服務:
停止這兩個服務的目錄是讓gitlab停止資料的變更,以免出現資料不一緻的問題。
恢複資料指令如下:
恢複的過程中會詢問是否繼續什麼的,輸入yes即可。
恢複完之後記得要啟動服務:
gitlab-ctl start
注意:恢複備份需要注意版本問題,如果當時備份的是舊版本的gitlab資料,而現在要恢複到新版本的gitlab上,是無法恢複的。隻有版本一緻才能進行恢複。
本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/2061710,如需轉載請自行聯系原作者