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 "gitadmin@git.surpass.org"
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手册
阅读(3020) | 评论(0) | 转发(0) |