制作GIT私服(gitOSis)(及卸载)

一、安装Git

yum install git

二、安装Gitosis

【服务端】Gitosis是用Python编写的,所以,在初始化一些环境的时候,要特别注意。通过下面的命令安装所有需要的软件。

依次运行下面的命令:

yum install -y python python-setuptools git-core
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install

注:使用python setup.py install,出现TypeError: init() takes exactly 2 arguments (4 given);
原因:
安装setuptools的requirements.py版本不对
解决办法:
pip install setuptools==33.1.1
再次使用python setup.py install即可

三、配置Gitosis

1.在客户端生成ssh公钥

ssh-keygen -t rsa

2.把生成的公钥上传到服务器的tmp文件夹中(windows系统保存到用户目录下的“.ssh”文件夹中)
在这里插入图片描述3.在服务端利用刚刚上传的公钥初始化gitosis

#新建一个git用户
useradd -m git
su - git
gitosis-init</tmp/id_rsa.pub

这样会在/home/git下面生成gitosis和repositories两个目录,后者即为存放公共库的目录。确保/home/git/repositories/gitosis-admin.git/hooks/post-update具有执行权限(755)。

四、配置git项目和用户

1.在客户端克隆gitosis-admin.git项目,它是用来管理所有git项目及用户的。

git clone git@xxx.xxx.xxx.xxx:gitosis-admin.git

注:为什么这里可以直接通过clone命令克隆项目,就是因为gitosis-init初始化的时候使用了客户端生成的公钥。

2.客户端在gitosis-admin项目下有一个gitosis.conf文件和一个keydir目录。gitosis.conf用来配置git项目和用户,keydir存放用户的公钥,这里的公钥对命名有严格要求,“用户名.pub”,必须以.pub后缀结尾。gitosis.conf的格式如下:

[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = username	 #对应keydir下有一个 username.pub 公钥文件只写pub文件前面的用户名

3.修改gitosis.conf配置多个项目

[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = username	 #对应keydir下有一个 username.pub 公钥文件
[group new-project] 
writable = new-project	 #项目名称,就是文件夹名称
members = newuser	 #多个用户用空格分开

4.在新的客户端,同样用ssh-keygen命令生成公钥和私钥,并把公钥上传到keydir目录下,重命名为newuser.pub,更新gigosis-admin项目。

#在CentOS机器上克隆的gitosis-admin项目下执行下面的命令
git add .
git commit -a -m "add newuser"
git push

完成之后,服务器就已经做好了接受新项目的准备。这个时候服务器端还不会生成new-project.git项目,等PC端push之后会自动生成。

五、客户端创建新git仓库,并上传到服务端

1.在PC端执行下面的命令。

mkdir new-project
cd new-project
git init
git add .
git commit -a -m "initial new-project"

2.客户端新建项目之后需要把本地的这个库和服务器上配置的new-project关联起来,执行下面的命令可以完成这个任务,而且gitosis会自动在服务器上生成new-project.git项目。

git remote add origin git@xxx.xxx.xxx.xxx:new-project.git
git push origin master

这样,本地的项目就和服务器上的项目实现了关联,意味着你拥有了一台自己的git server,你完全可以在别的电脑上克隆刚才添加的new-project.git项目了,也可以随意添加新的用户,记住要用空格隔开,还要上传公钥到keydir目录下并update gitosis-admin项目。

六、服务端卸载gitOSis

使用--record选项再次安装它:
python setup.py install --record uninstall.txt 

 这将产生一个包含所有安装文件的文本文件。 然后删除它们。
cat uninstall.txt | xargs rm -rf 

要删除实际的gitosis文件,你需要将它们从git所在的目录中删除。 通常它会在/ usr / local / bin中,但是如果你使用像homebrew或macports这样的软件包安装程序,它可能在别的地方。 要了解git的安装位置,请在terminal窗口中input:

 which git 

这将告诉你在哪里安装git,这是gitosis应该在哪里。
现在cd到该目录,你应该能够列出并删除文件,如下所示:

 ls gitosis* rm gitosis* 

这应该是你需要做的一切。

Git是非常著名的分布式版本控制系统。 Gitosis则是方便通过Git与ssh架设中央服务器的软件。这篇文章的安装流程写得很明了,但使用中还是遇到了些许问题,本文算是该流程的补充。如果打算通过Gitosis架设服务器通过本文或许可以少走不少弯路。 一、架设步骤 1. 下载并安装python setuptools sudo apt-get install python-setuptools 2. 下载并安装gitosis cd ~/src git clone git://eagain.net/gitosis.git cd gitosis python setup.py install 3. 添加用户git sudo adduser \ --system \ --shell /bin/sh \ --gecos 'git version control' \ --group \ --disabled-password \ --home /home/git \ git 4. 生成本机密钥 切换到个人机,如果已有~/.ssh/id_rsa.pub略过此步 ssh-keygen -t rsa 5. 上传密钥到服务器临时目录 scp ~/.ssh/id_rsa.pub 用户名@主机:/tmp 6. 初使化gitosis 切回到服务器 sudo -H -u git gitosis-init < /tmp/id_rsa.pub 7. 修改post-update权限 sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update 8. clone gitosis管理平台 git clone git@主机名:gitosis-admin.git cd gitosis-admin 9. 安装完成 通过修改gitosis-admin管理gitosis用户权限 添加公密到keydir,添加用户 修改完后commit,push到中服务器即可完成仓库权限的相关操作。 二、实例 目标:添加用户 john 和仓库 foo 到gitosis,并和管理员miao合作管理 1. 用户john添加并发送id_rsa.pub给miao john:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/john/.ssh/id_rsa): Created directory '/home/john/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/john/.ssh/id_rsa. Your public key has been saved in /home/john/.ssh/id_rsa.pub. john:~$ cp /home/john/.ssh/id_rsa.pub /tmp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值