gitolite安装和部署

git 2018-03-07 浏览(4263 评论(0

一、安装基础依赖包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y

二、安装git

[root@iZwz9dk6fi8sgmkdvc1hiaZ ~]#yum -y install git

[root@iZwz9dk6fi8sgmkdvc1hiaZ ~]# git --version
git version 1.7.1(显示出版本号,表示安装成功)

三、创建git用户

[root@iZwz9dk6fi8sgmkdvc1hiaZ ~]# useradd git  #git用户作为git访问的入口

[root@iZwz9dk6fi8sgmkdvc1hiaZ ~]# passwd git ​#设置密码

[root@iZwz9dk6fi8sgmkdvc1hiaZ ~]# su - git  #切换到git用户

[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ chown -R git:git ~/​#git家目录下的权限要保证,否则简单的错误提示权限不够

四、获取git版本库并安装

[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ git clone https://github.com/sitaramc/gitolite

[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ mkdir -p $HOME/bin  #为gitolite的二进制文件生成创建目录(创建bin目录并安装gitolite 到bin目录) 

[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ gitolite/install -to $HOME/bin  # 编译生成安装文件

五、配置gitolite管理员

gitolite 使用特殊的版本库gitolite-admin 来管理用户和版本库,所以需要创建一个管理员来管理所有的用户和版本库

1.用git用户生成公钥
[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ ssh-keygen -t rsa

2.修改.ssh/id_rsa.pub 为admin.pub(为什么要改成admin.pub 因为gitolite根据这个文件名来设立帐号.我这里用admin)
[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ mv .ssh/id_rsa.pub admin.pub

3.使用管理员公钥安装gitolite(安装和初始化gitolite,都需要在git用户,gitolite自动生成了两个版本库:gitolite-admin.git 和test.git ,一个是管理仓库的,一个是测试用)
[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ $HOME/bin/gitolite setup -pk admin.pub​  #安装并初始化,指定admin.pub公钥文件对应的用户为超级管理员

4.生成管理员管理仓库(不需要输密码)

[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ git clone git@127.0.0.1:gitolite-admin  #进入仓库后可以看到conf和keydir ,conf/gitolite.conf 是添加用户/仓库的配置, keydir 是放对应用户的公钥.并且此时,admin.pub这个公钥可以删除了

5. 编辑gitolite.conf
[git@iZwz9dk6fi8sgmkdvc1hiaZ ~]$ vim gitolite-admin/conf/gitolite.conf

图片描述

 定义两个用户组: admin 和 user

 定义两个版本库: gitolite-admin 和 project

 用户admin 对 这两个版本库有(读 写 删除)RW+ 权限

 user组对project 有 (读 写)RW 权限

 6.然后提交修改
 [git@iZwz9dk6fi8sgmkdvc1hiaZ conf]$ git add .

 [git@iZwz9dk6fi8sgmkdvc1hiaZ conf]$ git commit -m "new project"
 设置一下用户git commit时附带打上这些信息
 git config --global user.name "yourname"    
 git config --global user.email "your@email.com"
 
 [git@iZwz9dk6fi8sgmkdvc1hiaZ conf]$ git config --global user.name "huangxinqiang"
 [git@iZwz9dk6fi8sgmkdvc1hiaZ conf]$ git config --global user.email "huangxinqiang@qq.com"

 [git@iZwz9dk6fi8sgmkdvc1hiaZ conf]$ git push origin master

 这个时候,服务器已经搭建完毕了,只需要添加用户并给用户添加权限就可以了。下面我们添加用户测试

 7.添加测试用户,设置权限
 把测试用户的公钥放到keydir目录中,在conf/gitolite.conf 设置权限,然后再push

 

六、centos客户端

[root@iZwz9dk6fi8sgmkdvc1hiaZ ~]# git clone git@123.77.62.13:/testing.git


[root@iZwz9dk6fi8sgmkdvc1hiaZ ~]# cd testing

[root@iZwz9dk6fi8sgmkdvc1hiaZ testing]# git status
# On branch master#
# Initial commit
#nothing to commit (create/copy files and use "git add" to track)

七、window客户端

1.在git官网(https://git-scm.com)下载安装git程序

图片描述

2.右键选择Git Bash

图片描述

3.打开一个DOS栏,输入 ssh-keygen.exe。这里可以用Tab键补全,然后有提示输入y后一直回车到结束

4.然后打开客户机用户目录下的 .ssh 中能看到id_rsa 私钥

图片描述

5.然后把id_rsa 这个私钥文件上传到服务器的/home/git/gitolite-admin/keydir 目录中,设置权限vi gitolite.conf

6.提交修改

 [git@iZwz9dk6fi8sgmkdvc1hiaZ conf]$ git add .

 [git@iZwz9dk6fi8sgmkdvc1hiaZ conf]$ git commit -m "new project"

 [git@iZwz9dk6fi8sgmkdvc1hiaZ conf]$ git push origin master

7.回到客户端,克隆版本库

打开Bash 窗口,输入git clone git@123.77.62.13:/testing.git

克隆成功之后,就可以自己提交文件,上传到服务器中。

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

黄信强博客