一.部署环境
系统:CentOS 6.4x64 最小化安装
IP:192.168.3.27
二.安装基础依赖包
1
| [iyunv@nginx ~]#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y
|
三.下载git-2.2.0.tar.gz
四.解压文件到当前目录下,并安装
1
2
3
4
| [iyunv@nginx git-2.2.0]#tar xf git-2.2.0.tar.gz
[iyunv@nginx git-2.2.0]#cd git-2.2.0/
[iyunv@nginx git-2.2.0]#make prefix=/usr/local/git all
[iyunv@nginx git-2.2.0]#make prefix=/usr/local/git install
|
增加软连接
1
| [iyunv@nginx git-2.2.0]#ln -s /usr/local/git/bin/* /usr/bin/
|
验证结果,显示出版本号,表示安装成功
1
2
| [iyunv@nginx git-2.2.0]#git --version
git version 2.2.0
|
五.创建git用户
1
| [iyunv@nginx ~]# adduser git
|
六.在git用户家目录下安装gitolite
1
2
3
| [iyunv@nginx ~]# su git
[git@nginx root]$ cd
[git@nginx ~]$ mkdir bin
|
七.克隆gitolite源码
1
2
3
4
5
6
7
8
9
| [git@nginx ~]$ git clone https://github.com/sitaramc/gitolite.git
Cloning into 'gitolite'...
remote: Counting objects: 8884, done.
remote: Total 8884 (delta 0), reused 0 (delta 0), pack-reused 8884
Receiving objects: 100% (8884/8884), 3.66 MiB | 179.00 KiB/s, done.
Resolving deltas: 100% (5055/5055), done.
Checking connectivity... done.
[git@nginx ~]$ ls
bin gitolite
|
八.安装gitolite
1
2
3
| [git@nginx ~]$ ./gitolite/install --to /home/git/bin/
[git@nginx ~]$ ls bin/
commands gitolite gitolite-shell lib syntactic-sugar triggers VERSION VREF
|
九.配置gitolite管理员
生成管理员账户的公钥(此处指定本地root用户为管理员,键入回车使用默认值)
1
2
| [iyunv@nginx ~]# ssh-keygen
[iyunv@nginx ~]# cp .ssh/id_rsa.pub /tmp/admin.pub
|
切换回git用户,为gitolite配置管理员
1
2
3
4
5
6
7
8
9
| [git@nginx ~]$ bin/gitolite setup -pk /tmp/admin.pub
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/git/repositories/testing.git/
WARNING: /home/git/.ssh missing; creating a new one
(this is normal on a brand new install)
WARNING: /home/git/.ssh/authorized_keys missing; creating a new one
(this is normal on a brand new install)
[git@nginx ~]$ ls
bin gitolite projects.list repositories
|
十.管理员日常管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| [iyunv@nginx ~]# git clone git@192.168.3.27:gitolite-admin
Cloning into 'gitolite-admin'...
The authenticity of host '192.168.3.27 (192.168.3.27)' can't be established.
RSA key fingerprint is c4:34:02:55:ad:42:8a:65:ba:94:00:20:48:d7:3c:33.
Are you sure you want to continue connecting (yes/no)? yes
#这里是第一次连接,需要输入yes进行确认
Warning: Permanently added '192.168.3.27' (RSA) to the list of known hosts.
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
Receiving objects: 100% (6/6), 734 bytes | 0 bytes/s, done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Checking connectivity... done.
[iyunv@nginx gitolite-admin]# ls
conf keydir
[iyunv@nginx gitolite-admin]# pwd
/root/gitolite-admin
|
验证:
创建库、添加用户
例如某test用户访问git服务器上的mytest库 test用户向git服务器管理(此处是之前的服务器本地的root用户)提交自己的ssh无密码公钥 管理员将test的公钥复制到 gitolite-admin/keydir/ 下
|