您现在的位置是:网站首页>>版本控制>>Git

使用gitolite搭建git服务器

发布时间:2018-06-21 18:21:29作者:wangjian浏览量:542点赞量:0

    一.配置gitolite管理员

    gitolite管理员可以使本地用户也可以是服务器上的用户

    1.gitolite管理员在本地

    (1)在本地安装git

    (2)在本地安装TortoiseGit

    (3)使用puTTYgen生成属于你的密钥对

    (4)将本地生成公钥上传到服务器上:

    scp WANGJIAN.pub root@192.168.11.129:/tmp

    2.gitolite管理员在服务器上

    (1)在服务器上专门创建一个gitolite管理员用户

    useradd gitolite  //创建gitolite用户
    passwd gitolite  //给gitolite用户设置密码

    (2)在 gitadmin 用户下生成公钥私钥

    ssh-keygen//中间敲三次回车//第一次:默认生成的路径,回车//第二次第三次 输入密码 确认密码,建议回车

    (3)将生成的公钥放到/tmp目录下

    cp /home/gitadmin/.shh/id_rsa.pub /tmp/admin.pub

    二.安装gitolite

    1.安装gitolite前准备

    在root用户下安装以下软件

    (1).安装git

    yum install git

    (2).安装perl

    yum install perl

    (3).安装cpan

    yum install cpan

    (4).安装openssh

    yum install openssh

    2.安装gitolite

    (1)创建一个git用户用于管理git服务和安装gitolite

    useradd git//创建git用户
    passwd git//设置密码

    su git

    注意:切换到git用户,并确保~/.ssh/authorized_keys文件为空或者不存在,若存在删除authorized_keys文件 rm -rf authorized_keys

    (2)执行安装操作

    git clone git://github.com/sitaramc/gitolite  //下载gitolite软件
    mkdir -p $HOME/bin//创建bin目录
    gitolite/install -to $HOME/bin #安装gitolite
    export PATH=$PATH:$HOME/bin
    echo "PATH=$PATH:$HOME/bin" >> .bashrc
    gitolite setup -pk /tmp/admin.pub #将你要设置的gitolite用户配置为git的管理员

    如果在执行gitolite/install -to $HOME/bin时报如下错误:

    Can't locate Time/HiRes.pm in @INC (@INC contains: /home/git/gitolite/src/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/git/gitolite/src/lib/Gitolite/Common.pm line 74.

    BEGIN failed--compilation aborted at /home/git/gitolite/src/lib/Gitolite/Common.pm line 74.

    Compilation failed in require at ./install line 15.

    BEGIN failed--compilation aborted at ./install line 15.

    需要安装perl-Time_HiRes:

    yum install -y perl-Time-HiRes

    安装完成后,我们可以在/home/git目录下发现repositories目录,里面有两个仓库,分别为gitolite-admin和testing,其中gitolite-admin为管理仓库。

    3.克隆gitolite-admin库

    1.gitolite管理员配置的是本地:

    (1)在本地创建一个文件夹,进入创建目录右击选择git bash here 输入git init

    (2)右击设置git@192.168.11.129:gitolite-admin

    右击进行拉取可有看到出现了conf和keydir两个文件夹

    2.gitolite管理员配置的是服务器用户

    (1)切换到gitolite用户 su gitolite

    (2)clone git用户下的gitolite-admin.git

    git clone git@192.168.11.129:gitolite-admin

    可以看到gitolite用户下出现了一个gitolite-admin文件

    在gitolite-admin目录下有conf和keydir两个文件夹

    至此gitolite搭建git服务器完成

    keydir这个文件是用来放置公钥的(想要配置一个用户权限首先把用户的公钥放到keydir文件下)

    conf这个目录下的gitolite.conf文件是用来配置仓库及权限的

    这里面每一个repo都是一个仓库

    gitolite.conf学习参考https://gitolite.com/gitolite/conf/index.html


0 +1