美文网首页
linux下的git服务器搭建-gitolite

linux下的git服务器搭建-gitolite

作者: 倪伟_2131 | 来源:发表于2019-07-08 14:13 被阅读0次

    本方案采用gitolite做git用户权限管理。

    1. 创建git用户,并切换到git用户。
    # 需要root权限
    useradd -g git git
    # 修改git用户密码
    passwd git
    # 切换用户
    su git
    
    1. 拉取gitolite代码。
    git clone https://github.com/sitaramc/gitolite
    
    
    1. 安装gitolite。
    mkdir $HOME/bin
    # 执行gitolite安装脚本
    $HOME/gitolite/install -to $HOME/bin
    # 可能报错,安装脚本需要perl环境,和perl模块perl-Data-Dumper
    # Can't locate Data/Dumper.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 67.
    # BEGIN failed--compilation aborted at 
    # /home/git/gitolite/src/lib/Gitolite/Common.pm line 67.
    # Compilation failed in require at gitolite/install line 15.
    # BEGIN failed--compilation aborted at gitolite/install line 15
    
    # 安装perl-Data-Dumper,需要root权限
    yum install perl-Data-Dumper.x86_64
    #成功后再次执行安装脚本
    $HOME/gitolite/install -to $HOME/bin
    ls $HOME/bin
    # 显示如下,安装成功
    commands  gitolite  gitolite-shell  lib  syntactic-sugar  triggers  VERSION  VREF
    
    1. 配置gitolite,需要设置一个管理员用户,例如who
    # 将管理员who的ssh公钥copy到目录下,如果公钥不存在,请到对应的目录运行ssh-keygen -t rsa生成
    scp who@10.1.161.20:~/.ssh/id_rsa.pub ./who.pub
    # 初始化git服务,设置who为管理员
    bin/gitolite setup -pk ./who.pub
    # 初始化后创建了repositories和.gitolite目录
    # repositories/gitolite-admin.git是管理员配置仓库
    # .gitolite/对应gitolite-admin.git的内容
    # 所有配置修改必须由管理员提交到gitolite-admin.git
    

    查看 .gitolite/conf/gitolite.conf下的文件,如下

    repo gitolite-admin
    RW+     =   who
    
    repo testing
    RW+     =   @all
    

    表示who具有gitolite-admin仓库的读写权限。
    所有人都有testing仓库的读写权限。所有人指的是在 `.gitolite/keydir中放置了ssh公钥的人。

    1. 现在可以登录who的账号,然后拉取gitolite管理仓库,进行配置修改,修改后push到服务器,修改即时生效。
    ssh who@10.1.161.20
    # 如果clone失败,说明之前配置管理员的ssh公钥和当前用户的私钥不匹配
    git clone git@10.1.161.21:gitolite-admin
    ls gitolite-admin
      conf  keydir
    # do some change, add & commit
    # 添加用户:将新用户的ssh公钥放置在keydir中,即可添加用户,并在conf/gitolite.conf中配置用户权限。
    # 建立仓库:在conf/gitolite.conf中增加repo可以创建新仓库,并添加用户权限
    git push
    

    相关文章

      网友评论

          本文标题:linux下的git服务器搭建-gitolite

          本文链接:https://www.haomeiwen.com/subject/utgnhctx.html