1. 程式人生 > >git伺服器gitolite安裝與簡單配置

git伺服器gitolite安裝與簡單配置

說到Git,作為Linus的另一大著名作品,目前已經成熟,與CVS和SVN相比優勢明顯,其分散式及靈活的分支合併功能,另外原始碼下載和上傳的速度體驗也相當湊合。
本文將分享下如何在centos5.6配置Git伺服器(gitolite)。
目標
配置Git伺服器有很多種方式,目標是配置能滿足多人協作、可以細分許可權的Git伺服器,另外還要有較好的安全性,在迎合這種目標的各種組合中,最終選擇了gitolite。
基礎知識
你需要具有簡單的linux基礎知識,如ssh、使用者及使用者組、許可權、金鑰、git操作等。整個過程相當簡單,按照下面的步驟操作,如無意外,就能成功!
安裝git
伺服器及客戶端都要安裝,去下載編譯git最新版,以 git-1.7.5.1.tar.bz2為例
以root登入到伺服器
tar xvfj  git-1.7.5.1.tar.bz2
cd  git-1.7.5.1
./configure
make
make install

或者通過:
yum install git

在伺服器新增git使用者和git使用者組
mkdir -p /data/git
groupadd git
useradd -g git -d /data/git -s /bin/bash git
passwd git #設定git使用者密碼
#改變git目錄許可權
    chown -R git:git /data/git
    chmod -R 2755 /data/git
在客戶端生成金鑰
ssh-keygen -t rsa -f ~/.ssh/admin
scp ~/.ssh/admin.pub git.surpass.org:/tmp/admin.pub #將公鑰拷到伺服器待用,git.surpass.org為伺服器的域名
安裝gitolite
到伺服器,進行gitolite安裝:
su git
cd $HOME
git clone git://github.com/sitaramc/gitolite
cd gitolite
mkdir -p $HOME/bin $HOME/share/gitolite/conf $HOME/share/gitolite/hooks
src/gl-system-install $HOME/bin $HOME/share/gitolite/conf $HOME/share/gitolite/hooks
將$HOME/bin下的可執行程式加入系統PATH:
echo "PATH=$PATH:$HOME/bin" >> ~/.bashrc
暫時退出git使用者,然後重切換進來,使環境變數生效:
exit
su git
gl-setup /tmp/admin.pub #設定admin.pub公鑰,預設第一個公鑰對應管理員
OK,到此,環境搭建一步基本大功告成了。

gitolite配置管理
新增使用者
1.轉到客戶端,這裡用的是gitadmin,git安裝略:
su gitadmin

2.建立gitolite別名,採用admin公鑰進行驗證:
vi .ssh/config
輸入內容
host gitolite
     user git
     hostname git.surpass.org
     port 22
     identityfile ~/.ssh/admin
    
3.修改.ssh/config許可權
   chmod 0644 config
4.克隆gitolite-admin庫
    git clone gitolite:gitolite-admin
5.新增一個許可權
cd gitolite-admin/
cp tmp/a1.pub keydir/a1.pub
5.1執行 git add 命令,將公鑰新增入版本庫
git add keydir/
git status
5.2 配置git管理員資訊。
git config --global user.email "[email protected]"
git config --global user.name "admin"
5.3 執行 git commit,完成提交。
git commit -m "add user:a1"
5.4 執行 git push,同步到伺服器,才真正完成新使用者的新增。
git push

到服務端的git使用者下檢視git/.ssh/authorized_keys檔案,會發現新增的使用者公鑰也附加其中


關於授權參見gitolite手冊