Centos7下使用gitolite搭建git服務(wù)器

Centos7下使用gitolite搭建git服務(wù)器

安裝較新版本Git

因?yàn)榘惭bgitolite需要使用git,所以需要事先安裝git。Centos7的git版本默認(rèn)是1.8,但是現(xiàn)在的git最新版已經(jīng)是2.x了,還是升級(jí)一下比較好。

首先安裝git所需的依賴包

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
# yum install gcc perl-ExtUtils-MakeMaker

下載

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.10.4.tar.gz (可以到https://www.kernel.org/pub/software/scm/git/去找想要下載的版本,我這里下載的是2.10.4) 
# tar -zxvf git-2.10.4.tar.gz(解壓)

安裝

# cd git-2.10.4
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install

在配置環(huán)境這里我出現(xiàn)了一個(gè)問(wèn)題,執(zhí)行下面的命令之后,成功的在bashrc文件看到了追加的內(nèi)容,但是當(dāng)git --version時(shí),依舊還是之前的版本號(hào),不太清楚是什么原因?qū)е碌?。?!?/p>

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
// echo 輸出顯示一段字符串 
// >> 將輸出內(nèi)容追加到目標(biāo)文件中

尋找解決辦法,找到了stackoverflow的一個(gè)問(wèn)答(https://stackoverflow.com/questions/21820715/how-to-install-latest-version-of-git-on-centos-7-x-6-x),找到了解決辦法.

# yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm

# yum update git

最終git --version版本號(hào)顯示正確

安裝gitolite

安裝之前

gitolite搭建的git服務(wù)器是以ssh公鑰認(rèn)證為基礎(chǔ)的,無(wú)論是普通用戶還是管理員都需要通過(guò)公鑰才能訪問(wèn)gitolite服務(wù)器。
在安裝gitlolite之前,我們需要一個(gè)管理員公鑰,管理員通過(guò)該公鑰連接gitolite服務(wù)器,克隆gitolite-admin版本庫(kù)(這個(gè)版本庫(kù)只有管理員才能操作),然后管理員通過(guò)該版本庫(kù)來(lái)進(jìn)行添加新用戶、添加授權(quán)、添加新倉(cāng)庫(kù)等一系列行為。

(1)在管理員所在的客戶端上創(chuàng)建ssh公鑰
可以使用下面的命令在用戶主目錄下創(chuàng)建名為/.ssh/id_rsa.pub的公鑰文件和名為/.ssh/id_rsa的私鑰文件

# ssh-keygen

(2)將該公鑰文件拷貝到服務(wù)器端,以便安裝gitolite時(shí)備用
可以使用ftp或者郵件的方式將文件傳到服務(wù)器端,最方便的是scp命令。

# scp [-P port] ~/.ssh/id_rsa.pub user@host:/yourpath
// 如果不是默認(rèn)端口號(hào) 加上 -P 指定端口號(hào)
// scp -P port ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:/tmp/admin.pub  注意這里更改為你自己的服務(wù)器地址
// 這里是將該公鑰文件放到了遠(yuǎn)端的/tmp目錄下,并命名為admin.pub

從源代碼安裝

(1)創(chuàng)建gitolite專用賬號(hào)

# adduser git

執(zhí)行完上述命令之后,你就會(huì)發(fā)現(xiàn)在/home目錄下多了一個(gè)git的目錄。你也可以使用passwd git來(lái)給git用戶添加密碼,但是我這里取消了git用戶的口令passwd --delete git,我的目的是只能通過(guò)公鑰進(jìn)行認(rèn)證。

(2)切換到專用賬號(hào),后續(xù)操作都以該用戶身份進(jìn)行

# su - git
# mkdir ~/bin
# git clone git://github.com/sitaramc/gitolite.git
# ./gitolite/install -ln ~/bin 創(chuàng)建連接
# ls ~/bin

執(zhí)行上面的最后一個(gè)命令后:


結(jié)果圖2
# gitolite setup -pk /tmp/admin.pub 
// 當(dāng)然,也可以在root用戶時(shí),將該公鑰文件拷貝到/home/git目錄下,這樣的話可以直接使用
結(jié)果圖2

出現(xiàn)上面出現(xiàn)警告不要怕,這是正常的~

那么恭喜,你已經(jīng)完成了gitolite的安裝

測(cè)試連接

切換到你的管理員賬戶

//我這里是root
# su - root
# git clone git@xxx.xxx.xxx.xxx:gitolite-admin // 如果不是默認(rèn)端口22,命令為:git clone ssh://git@xxx.xxx.xxx.xxx:port/gitolite-admin
# cd gitolite-admin
# ls
結(jié)果圖3

好了,剩下的就是配置的事嘍~

配置gitolite服務(wù)器

在客戶端克隆的gitolite-admin目錄下,默認(rèn)有兩個(gè)子目錄conf/和keydir/

keydir目錄存放用戶公鑰,初始只有一個(gè)管理員admin的公鑰(admin.pub),之后新加的用戶的公鑰文件都會(huì)放在這里。

conf/gitolite.conf這里配置用戶的權(quán)限,包括讀寫(xiě)。初始內(nèi)容為

repo gitolite-admin
    RW+ = admin
repo testing
    RW+ = @all

意思是:gitolite-admin版本庫(kù),只有admin用戶可以讀寫(xiě)以及強(qiáng)制更新。testing版本庫(kù),任何人都可以讀寫(xiě)以及強(qiáng)制更新

添加新用戶

管理員需要做的就是拿到用戶的公鑰文件,將文件以u(píng)sername.pub進(jìn)行重命名,將其放入到gitolite-admin版本庫(kù)的keydir目錄下。

# cp /path/ziv.pub keydir/ 
//標(biāo)識(shí)用戶ziv

然后執(zhí)行git add,git commitgit push之后,才算是用戶添加完成。

更改授權(quán)

新用戶添加完畢后,需要為新用戶添加授權(quán)。很簡(jiǎn)單,修改conf/gitolite.conf文件即可。

管理員進(jìn)入gitolite-admin版本庫(kù),編輯文件。

# vi conf/gitolite.conf

修改為如下的話:

@team1 ziv peter jane

repo gitolite-admin
    RW+ = admin
repo testing
    RW+ = @team1

意思是:testing版本庫(kù),只有team1用戶組下的用戶才能夠讀寫(xiě)以及強(qiáng)制更新

執(zhí)行git add git commit git push,添加授權(quán)完成。

具體的授權(quán)語(yǔ)法,詳情請(qǐng)看:http://www.worldhello.net/gotgit/05-git-server/040-gitolite.html#id10

參考資料

【1】https://www.unixmen.com/install-gitolite-centos-7/
【2】http://www.worldhello.net/gotgit/05-git-server/040-gitolite.html#gitolite

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 使用Gitolite搭建輕量級(jí)的Git服務(wù)器 轉(zhuǎn)載 2018年4月12日 11:10:28 轉(zhuǎn)自【http://b...
    我是傻瓜蛋兒66閱讀 1,511評(píng)論 0 1
  • gitosis: 把所有用戶的公鑰保存在 authorized_keys 文件的做法,只能湊和一陣子,當(dāng)用戶數(shù)量達(dá)...
    曉蜻蜓閱讀 6,145評(píng)論 2 2
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 軟件需求:Git-core,gitosis, openssh-server, git-daemon-run(ubu...
    BUG弄潮兒閱讀 2,246評(píng)論 0 0
  • 微習(xí)慣 今天的材料分享了斯蒂芬·蓋斯的《微習(xí)慣》,通過(guò)分享了解了微習(xí)慣是什么,微習(xí)慣的好處以及如何培養(yǎng)微習(xí)慣。 簡(jiǎn)...
    姚二姚閱讀 104評(píng)論 0 0

友情鏈接更多精彩內(nèi)容