git 服务器搭建之gitosis


Gitserver + gitosis + gitweb 安装及使用说明



这里讲到的是一套完整的git方案, 包括git server安装,gitosis进行项目及用户的权限管理,gitweb.



  1. Gitserver安装

安装gitopenssh(以下@server表示在服务器的机器上的操作):

a@server:~$sudoapt-get install git-core openssh-server  openssh-client

新加用户git,该用户将作为所有代码仓库和用户权限的管理者:

a@server:~$sudouseradd -m git

a@server:~$sudopasswd  git

在不需要后gitosis,gitweb,gerrit的情况下,可参考陈星宏写的《ubuntugit 服务器搭建.docx

  1. 安装配置gitosis

Gitosis是用来对项目的权限和公租钥进行管理的工具。

  1. 服务器端

安装一下pythonsetuptool,这个也是为了gitosis做准备:

a@server:~$sudoapt-get install python-setuptools

安装gitosis包:

a@server:~$cd/tmp
a@server:/tmp$git clone https://github.com/res0nat0r/gitosis.git
a@server:/tmp$cdgitosis
a@server:/tmp/gitosis$sudopython setup.py install







如果你将作为git服务器的管理员,那么在你的电脑上(另一台pc)生成ssh公钥,~/.ssh目录下生成公私钥:

usr@pc1:~$ssh-keygen-trsa

将公钥拷贝到服务器的/tmp下:

usr@pc1:~$scp.ssh/id_rsa.pub git@<server>:/tmp

回到git服务器上

a@server:/tmp/gitosis$sudochmod a+r /tmp/huangbz.pub

gitosis运行起来:

a@server:/tmp/gitosis$ sudo -H -u git gitosis-init < /tmp/ huangbz.pub

修改权限:

root@server:/home/git#cd repositories
root@server:/home/git/repositories#cdgitosis-admin.git/
root@server:/home/git/repositories/gitosis-admin.git#sudochmod 755/home/repo/gitosis-admin.git/hooks/post-update

至此服务器端就配置好了。



  1. 客服端

添加新仓库:

执行:gitclone git@localhost:gitosis-admin.git

这会得到一个名为 gitosis-admin 的工作目录,gitosis.conf 文件是用来设置用户、仓库和权限的控制文件。keydir 目录则是保存所有具有访问权限用户公钥的地方—每人一个

添加新的项目成员:

新成员将生成的公钥传给管理员,管理员将公钥放到keydir中,并将该公钥push到服务器,这样新员就获得了访问服务器的权限。

usr@pc1:~/work/gitosis-admin$gitadd .
usr@pc1:~/work/gitosis-admin$gitcommit -am “add new user”
usr@pc1:~/work/gitosis-admin$gitpush





管理员添加一个新的空仓库,gitosis.conf文件中添加以下内容,

[grouptest]

members= huangbz@carbit.com.cn

writable= test



把更改提交并pushgit@localhost:gitosis-admin.git

gitcommit -a -m "添加新仓库test"

gitpush

  1. 权限管理

管理员通达修改gitosis.conf文件,可以实现对不同项目进行权限的管理,如:

[gitosis]

[groupgitosis-admin]
writable = gitosis-admin
members =huangbz@carbit.com.cn

[test]
writable= test
members = huangbz hbz

这个配置文件表达了如下含义:gitosis-admin组成员有huangbz,该组对gitosis-admin仓库有读写权限,gitosis-admin是管理项目权限的git,只配给管理员。
test
组有
huangbzhbz两个成员,该组对test仓库有读写权限,目前这些配置文件的修改只是在你的本地,你必须推送到远程的gitserver上才能真正生效。

加入新文件、提交并pushgit服务器:

usr@pc1:~/work/gitosis-admin$gitadd .
usr@pc1:~/work/gitosis-admin$gitcommit -am “add test ”
usr@pc1:~/work/gitosis-admin$gitpush


管理员上将空项目到服务器,新建一个工程目录(位置随意):

mkdirtest

cdtest

toucha.txt

gitinit

gitremote add origin git@localhost:test.git

至此,管理创建了空仓库, 权限管理,空项目到服务器,其它成员就可以克隆该项目进行开发了。





  1. Gitweb

安装apache2

sudoapt-get install apache2

安装gitweb

sudoapt-get install gitweb

配置gitweb

默认没有css加载,把gitweb要用的静态文件连接到DocumentRoot下:

cd/var/www/

sudoln -s /usr/share/gitweb/* .

修改配置:

sudovi /etc/gitweb.conf

$projectroot改为git仓库存储目录(例如:/home/git/repositories),并修改权限sudochmod 777 –R /home/git/repositories


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值