Centos7下使用gitolite搭建git服务器

Centos7下使用gitolite搭建git服务器

安装较新版本Git

因为安装gitolite需要使用git,所以需要事先安装git。Centos7的git版本默认是1.8,但是现在的git最新版已经是2.x了,还是升级一下比较好。

首先安装git所需的依赖包

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
# yum install gcc perl-ExtUtils-MakeMaker

下载

# cd /usr/src
# wget https://www.kernel.org/pub/software/scm/git/git-2.10.4.tar.gz (可以到https://www.kernel.org/pub/software/scm/git/去找想要下载的版本,我这里下载的是2.10.4) 
# tar -zxvf git-2.10.4.tar.gz(解压)

安装

# cd git-2.10.4
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install

在配置环境这里我出现了一个问题,执行下面的命令之后,成功的在bashrc文件看到了追加的内容,但是当git --version时,依旧还是之前的版本号,不太清楚是什么原因导致的。。。

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
// echo 输出显示一段字符串 
// >> 将输出内容追加到目标文件中

寻找解决办法,找到了stackoverflow的一个问答(https://stackoverflow.com/questions/21820715/how-to-install-latest-version-of-git-on-centos-7-x-6-x),找到了解决办法.

# yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm

# yum update git

最终git --version版本号显示正确

安装gitolite

安装之前

gitolite搭建的git服务器是以ssh公钥认证为基础的,无论是普通用户还是管理员都需要通过公钥才能访问gitolite服务器。
在安装gitlolite之前,我们需要一个管理员公钥,管理员通过该公钥连接gitolite服务器,克隆gitolite-admin版本库(这个版本库只有管理员才能操作),然后管理员通过该版本库来进行添加新用户、添加授权、添加新仓库等一系列行为。

(1)在管理员所在的客户端上创建ssh公钥
可以使用下面的命令在用户主目录下创建名为/.ssh/id_rsa.pub的公钥文件和名为/.ssh/id_rsa的私钥文件

# ssh-keygen

(2)将该公钥文件拷贝到服务器端,以便安装gitolite时备用
可以使用ftp或者邮件的方式将文件传到服务器端,最方便的是scp命令。

# scp [-P port] ~/.ssh/id_rsa.pub user@host:/yourpath
// 如果不是默认端口号 加上 -P 指定端口号
// scp -P port ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:/tmp/admin.pub  注意这里更改为你自己的服务器地址
// 这里是将该公钥文件放到了远端的/tmp目录下,并命名为admin.pub

从源代码安装

(1)创建gitolite专用账号

# adduser git

执行完上述命令之后,你就会发现在/home目录下多了一个git的目录。你也可以使用passwd git来给git用户添加密码,但是我这里取消了git用户的口令passwd --delete git,我的目的是只能通过公钥进行认证。

(2)切换到专用账号,后续操作都以该用户身份进行

# su - git
# mkdir ~/bin
# git clone git://github.com/sitaramc/gitolite.git
# ./gitolite/install -ln ~/bin 创建连接
# ls ~/bin

执行上面的最后一个命令后:


结果图2
# gitolite setup -pk /tmp/admin.pub 
// 当然,也可以在root用户时,将该公钥文件拷贝到/home/git目录下,这样的话可以直接使用
结果图2

出现上面出现警告不要怕,这是正常的~

那么恭喜,你已经完成了gitolite的安装

测试连接

切换到你的管理员账户

//我这里是root
# su - root
# git clone git@xxx.xxx.xxx.xxx:gitolite-admin // 如果不是默认端口22,命令为:git clone ssh://git@xxx.xxx.xxx.xxx:port/gitolite-admin
# cd gitolite-admin
# ls
结果图3

好了,剩下的就是配置的事喽~

配置gitolite服务器

在客户端克隆的gitolite-admin目录下,默认有两个子目录conf/和keydir/

keydir目录存放用户公钥,初始只有一个管理员admin的公钥(admin.pub),之后新加的用户的公钥文件都会放在这里。

conf/gitolite.conf这里配置用户的权限,包括读写。初始内容为

repo gitolite-admin
    RW+ = admin
repo testing
    RW+ = @all

意思是:gitolite-admin版本库,只有admin用户可以读写以及强制更新。testing版本库,任何人都可以读写以及强制更新

添加新用户

管理员需要做的就是拿到用户的公钥文件,将文件以username.pub进行重命名,将其放入到gitolite-admin版本库的keydir目录下。

# cp /path/ziv.pub keydir/ 
//标识用户ziv

然后执行git addgit commitgit push之后,才算是用户添加完成。

更改授权

新用户添加完毕后,需要为新用户添加授权。很简单,修改conf/gitolite.conf文件即可。

管理员进入gitolite-admin版本库,编辑文件。

# vi conf/gitolite.conf

修改为如下的话:

@team1 ziv peter jane

repo gitolite-admin
    RW+ = admin
repo testing
    RW+ = @team1

意思是:testing版本库,只有team1用户组下的用户才能够读写以及强制更新

执行git add git commit git push,添加授权完成。

具体的授权语法,详情请看:http://www.worldhello.net/gotgit/05-git-server/040-gitolite.html#id10

参考资料

【1】https://www.unixmen.com/install-gitolite-centos-7/
【2】http://www.worldhello.net/gotgit/05-git-server/040-gitolite.html#gitolite

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容