技術交流QQ羣:242722019
一.centos
os: centos6.7
git: 1.7.1
gitolite
步驟很簡單,需要安裝git,ssh支持,gitolite,然後公鑰 . 本文全部採用的yum包過來的.
1. 登錄服務器,安裝,(#是root 登錄後的.)
#yum install perl openssh git
裝不上,那就裝下面的依賴
#yum install curl-devel expat-develgettext-devel openssl-devel zlib-devel perl-devel
2.建立一個用戶
#adduser --system --shell /bin/sh--create-home --home-dir /home/git git
#cd /home/git
#mkdir repositories
#chown git:git -R ./repositories
#chmod 700 ./repositories
3.切換至剛建的git用戶 ($表示用戶)
#su git
$git clone git://github.com/sitaramc/gitolite
$mkdir -p $HOME/bin
$gitolite/install -to $HOME/bin
這裏可能會報錯缺少模塊,就需要切換到root安裝缺失模塊.比如perl-Time-HiRes這個
$su -
輸入服務器root密碼
#yum install perl-Time-HiRes
#su git
$gitolite/install -to $HOME/bin
然後這裏安裝的就完了.二、選擇一個主機做爲管理gitolite的管理員(這裏很多文檔沒有強調說明清楚)
#ssh-keygen
#cd /root/.ssh
裏面有id_ras.pub和id_rsa,一個是公鑰,一個是私鑰.如果之前你裝過openssl產生過密鑰,那這裏就不要覆蓋了
複製到服務器的/tmp
#scp ~/.ssh/id_rsa.pubserver_username@server_host:/tmp
輸入密碼
回到服務器,
#cd /tmp
#mv id_rsa.pub admin.pub
爲什麼要改成admin.pub因爲gitolite根據這個文件名來設立帳號.我這裏用admin
#su git 切換到git用戶
$$HOME/bin/gitolite setup -pkadmin.pub(之所以直接用的admin.pub是因爲在/tmp目錄下su git的)
然後去/home/git/repositories裏面,可以看見倉庫文件.gitolite-admin.git和test.git一個是管理倉庫的,一個是測試用
注:gitolite-admin.git倉庫是管理員管理git所有倉庫的,且只能作爲管理員的主機才能進行配置修改。
#git clonegit@server_host:gitolite-admin
進入倉庫後可以看到conf和keydir,conf/gitolite.conf是加用戶/倉庫的配置, keydir 是放對應用戶的公鑰.
<!-- 非常重要這裏,困在這裏耗費了一天時間研究 gitolite權限配置-->
注:配置好gitolite.conf和keydir對新建倉庫很重要,配置好後需要push到服務器才能生效。
配置gitolite.conf文件
將添加用戶的id_rsa.pub重命名成容易識別的***.pub文件放到keydir下面
git push到git server服務器,生效後查看/home/git/.ssh/authorized_keys文件可以看到新添加的用戶已經添加進去,且配置的倉庫也創建 在 /home/git/repositories中