天天看點

搭建git伺服器

我們都知道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使用者的密碼:

搭建git伺服器

設定完之後就可以使用root賬戶登入了:

搭建git伺服器

登入後的界面:

搭建git伺服器

先來看看如何配置gitlab内置的nginx伺服器,配置檔案所在的路徑如下:

域名和監聽端口在gitlab-http.conf檔案中配置,如果機器上隻跑一個gitlab服務就不用配置保持預設即可。

在gitlab上建立一個使用者組:

搭建git伺服器
搭建git伺服器

然後在目前這個組裡建立一個項目:

搭建git伺服器
搭建git伺服器

點選右上角頭像,在settings界面裡,添加密鑰認證:

搭建git伺服器
搭建git伺服器

gitlap的使用者可以自己注冊,也可以由管理者進行建立,以下示範由管理者來建立使用者:

搭建git伺服器
搭建git伺服器

剩下的預設即可,然後點選頁面下方的Create user按鈕。

建立完成後,還可以點選Edit按鈕編輯該使用者,例如修改個密碼什麼的:

搭建git伺服器
搭建git伺服器

儲存修改後,退出目前使用者,看看是否可以登入建立的使用者:

搭建git伺服器
搭建git伺服器

然後再重新登入即可,我這裡是登入成功的:

搭建git伺服器

點選Create a project可以建立一個新項目:

搭建git伺服器

建立成功:

搭建git伺服器

剩下的操作就和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,如需轉載請自行聯系原作者