前面安装了gitosis-admin用的时候感觉还挺好的,不过有一部分机器会出现识别不了密钥,这个时候然后正常的情况下只要进行git@IP:项目名.git就可以了,但是有一些就必须需要进行git@IP:repositories/项目名.git才可以,而且必须要输入密码。这个时候就想到用别的管理。第一个想到的就是gitolite。

进入gitosis-admin安装的目录,运行#python setup.py install –record install.txt

这样就把安装的一些日志直接放到了install.txt里面了

然后运行

#cat install.txt| xagrs rm -rf

就可以对gitosis-admin进行删除处理。

第一步,把自己的公钥拷贝到服务器上面/tmp/jinhui.pub

然后创建对应的git用户名

mkdir -p /home/git
groupadd git
useradd -g git -d /home/git -s /bin/bash git
passwd git #设置git用户密码
#改变git目录权限
chown -R git:git /home/git
chmod -R 2755 /home/git

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

然后运行

$./gitolite/install --to /home/git/bin/

对gitolite进行安装

安装完之后运行

$/bin/gitolitesetup -pk /tmp/jinhui.pub

就完成repositories的初始化。

这个时候就可以直接在客户端进行运行 git clone git@IP:gitolite.git进行把管理项目拷贝下来。

成员的公钥是放在gitolite-admin/keydir/ 下的,然后权限配置是在gitolite-admin/conf/下的

repo gitolite-admin //定义仓库名称
    RW+     =   jinhui//定义成员名称,多个人员,空格隔开然后对应的权限是R是读,W是写后面那个+是删除等权限

repo testing
    RW+     =   @all
repo test
    RW+    =    jinhui

以后就可以通过这个项目来进行管理所有项目的权限了。被gitosis-admin的不能自动密钥认证搞得半死,终于可以用gitolite进行替换了。

有时候在新建别的项目的时候有些管理不了,会出现以下错误

FATAL: split conf set, gl-conf not present for 'testing'
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

可直接复制gitolite-admin.git/gl-conf到对应的项目底下,然后修改一下里面的项目名称即可。

分享该文章:

相关文章:

  • 暂无相关文章