美文网首页
ubuntu16.04 搭建git服务器

ubuntu16.04 搭建git服务器

作者: HelloWorld__ | 来源:发表于2018-03-20 16:56 被阅读0次

    一、所需软件软件安装与配置

    git-core是git版本控制核心软件,安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件

    $ sudo apt-get install git-core openssh-server openssh-client


    配置git账号名和邮箱

    $ git config--global user.name "myname"

    $ git config--global user.email "myemail@gmail.com"


    安装python的setuptools和gitosis,由于gitosis的安装需要依赖于python的一些工具,所以我们需要先安装python的setuptools。

    $ sudo apt-get install python-setuptools

    $ git clone https://github.com/res0nat0r/gitosis.git   #中间两个为零

    $ cd gitosis/

    $ sudo python setup.py install


    二、创建git管理员账号

    创建git用户

    $ sudo useradd -m git

    $ sudo passwd git


    三、配置gitosis

    在管理员机器生成秘钥,管理员机器可以是此台服务器别的用户,也可以是别的机器

    $  ssh-keygen  -t  rsa       # 这里会提示输入密码,我们不输入直接回车即可

    ssh-keygen success

    把生成的id_rsa.pub拷到git账户下,比如  /home/git/,用这个key来初始化git仓库

    $ su  git  # 输入密码,切到git用户

    ~git$  sudo chmod a+r /home/git/id_rsa.pub

    ~git$  sudo -H -u git gitosis-init < /home/git/id_rsa.pub

    gitosis-init success

    出现如上信息说明gitosis已经初始化成功, 会在/home/git/目录下生成repositories目录,这个就是放在git项目的目录,里面有gitosis-adgitosis.git的仓库,通过gitosis-admin.git仓库来管理一些配置文件的,如用户权限的管理。


    添加权限

    ~git$ sudo chown git:git /home/git/repositories

    ~git$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

    ~git$ ubuntu:/tmp/gitosis$ sudo chmod 755 /home/git/repositories


    四、在服务器新建测试仓库

    创建test仓库

    ~git$  cd /home/git/repositories/

    ~git$ git init --bare test.git   #  此时为空,不能clone,必须先让管理员或有权限的人放一个初始化的版本到仓库中

    五、使用gitosis管理用户操作项目的权限

    在管理员电脑上做如下操作

    $ mkdir gitadmin

    $ cd gitadmin/

    $ gitadmin$ git clone git@10.239.51.66:gitosis-admin.git

    # 若报错,可以尝试全路径,

    $  git clone git@192.168.1.106:/home/git/repositories/gitosis-admin.git

    clone后,gitosis-admin目录下:

                   keydir目录: 存放所有需要访问git服务器的用户的ssh公钥,各个用户按照前面提到的办法生成各自的ssh公钥文件后,把所有人的ssh公钥文件按名字重新命名一下,然后拷贝到keydir目录下,例如,lisi.pub,  zhangsan.pub ,  若lisi为管理员机器的ssh key

                   gitosis.conf文件,做相应的配置:

    [gitosis]

    [group gitosis-admin]

    writable = gitosis-admin   #仓库名称

    members = lisi   # 有权限的成员,只有lisi可以读写此项目

    [group testgit]

    writable = test   # 仓库名称

    members =lisi zhangsan      # 组成员,lisi, zhangsan都可以读写此项目

             这个配置文件表达了如下含有:gitosis-admin组成员有ljz,该组对gitosis-admin仓库有读写权限;testgit组有 ljz lisi wanger三个成员,该组对test仓库有读写权限。目前这些配置文件的修改只是在本地,必须推送到远程的git服务器上才能真正生效


    提交并push到Git服务器

    $ git add .

    $ git commit –am "add test and someusers"

    $ git push origin master

    六 初始化测试项目

             现在服务器搭建完毕,并且有一个空的项目test在服务器上。接下来,需要测试一下,空仓库是不能clone的,所以需要某个有写权限的人初始化一个版本。在客户端执行

    $ mkdir  mytest

    $ cd   mytest

    $ git  init (在客户端执行,初始化一个本地的版本库)

    $ echo "hello world!!!" > hello.txt

    $ git  add .

    $ git  commit  –m  "init commit"

    $ git  remote add origin git@10.239.52.66:test.git

    $ git push origin master

    相关文章

      网友评论

          本文标题:ubuntu16.04 搭建git服务器

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