最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
centos6中gitolite安装配置步骤详解
时间:2022-06-30 21:11:24 编辑:袖梨 来源:一聚教程网
git服务端的管理工具用过2个,一个gitlab,一个是gitolite,
1,gitlab功能强大,有web管理界面,反正是各种方便吧,请参考:linux gitlab nginx 安装 配置 详解,但是gitlab安装比较麻烦
2,gitolite,安装非常简单,功能也比较简单,基本需要能满足,创建仓库,分配权限,总体来说还不错。
如果频繁的创建仓库,以及人员变更,用gitlab比较合适的,反之gitolite比较合适。
一,安装GIT
# yum install perl openssh git
在这里要注意,所有以#开头执行的命令都root账号,以$开头的命令都非管理账号
二,安装gitolite
1,创建git用户
# adduser git
# passwd git
2,切换到git用户,创建安装目录
# su – git
$ cd ~
$ mkdir bin
3,克隆gitolite源码
$ git clone https://github.com/sitaramc/gitolite.git
4,生成管理员的公钥和私钥,用root为管理员
$ exit //退出切换到root,直接su root要密码
# ssh-keygen //生成公钥和私钥
# cp /root/.ssh/id_rsa.pub /tmp/admin.pub
5,安装gitolite
# su – git
$ /home/git/bin/gitolite setup -pk /tmp/admin.pub
6,管理员下载管理库
$ exit //退出切换到root,直接su root要密码
# git clone [email protected].*.*:gitolite-admin.git
三,添加测试账户
# adduser tank
# passwd tank
# su - tank
$ ssh-keygen
生成该用户的公钥和私钥,我们也可以用tortoisegit中的PuttyGen,来生成公钥和私钥,
linux下用ssh-keygen生成的私钥与PuttyGen生成的私钥是不能通用的,如果想通用就要转换一下
linux 私钥 另存为windows下的ppk
linux 私钥 另存为windows下的ppk
四,添加仓库,并配置权限
1,将公钥加到管理库
# cp /home/tank/.ssh/tank.pub /root/gitolite-admin/keydir/
2,修改配置文件,并赋予权限
# vim /root/gitolite-admin/conf/gitolite.conf
@test=zhangying tank test //定义个组,多个人员,空格隔开。组最好都放到顶部,集中好管理
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
repo blog //定义的仓库名,也就是[email protected].*.*:blog.git
RW+ = @test //读写
repo test
R = @test //只读
3,将用户信息加到管理库
# /root/gitolite-admin
# git add *
# git commit -m "add tank"
# git push
这样服务器端就搭建好了,不管是linux下切换到tank用户进行clone等,还是在windows下用tortoisegit来clone等,都是可以的。
使用 gitolite 管理 git 服务器
gitolite:2.2-1
服务器端和客户端都是ubuntu linux
由于gitosis不再更新,打算迁移到gitolite。由于项目的用户不多,这里就不做详细的迁移,仅安装好gitolite后重新配置允许访问的用户,原版本库甚至不用移动,但是gitolite-admin库建议重新克隆并推送一次,以免管理出错。
通过apt安装,gitolite使用SSH key来认证用户,但用户不需要在主机上添加用户,而是使用服务器上的一个受限用户git。 安装的过程需要在客户端和服务器之间切换,留意操作步骤之前的说明。
服务器端(ip:192.168.1.254)
1.安装git
sudo apt-get install git-core
2.安装gitolite
sudo apt-get install gitolite
这里使用软件源中的2.2-1,最新的在 https://github.com/sitaramc/gitolite 上。
3.创建git用户
sudo adduser --system --shell /bin/sh --gecos 'git user' --group --disabled-password --home /home/git git
如果原来gitosis就有创建的,这里可以不用。
4.检查以上是否正常 ^_^
客户端(也需要先安装 git)
5. 在 gitolite 管理员的机器上生成 密钥,把公钥重命名为comet.pub,这里用scp传到服务器上
ssh-keygen -t rsa
mv id_rsa.pub comet.pub
scp comet.pub [email protected]:comet.pub
注意:这里的公钥文件comet.pub只有一行内容,如果是在windows中用puttygen生成的会有多行,在后面初始化的时候会提示:
WARNING: a pubkey file can only have one line (key); ignoring comet.pub
Perhaps you're using a key in a different format (like putty/plink)?
If so, please convert it to openssh format using 'ssh-keygen -i'.
If you want to add multiple public keys for a single user, use
"[email protected]" file names. See the "one user, many keys"
section in doc/3-faq-tips-etc.mkd for details.
6.在 ~/.ssh/config 添加以下内容,以便连接到服务器
Host 192.168.1.254
Compression yes
IdentityFile ~/.ssh/id_rsa
服务器端
7.使用上面的 comet.pub 初始化 gitolite
先切换到git用户,再进行
su - git
gl-setup /home/comet/comet.pub
creating gitolite-admin...
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
creating testing...
Initialized empty Git repository in /home/git/repositories/testing.git/
[master (root-commit) 0aa63a9] start
2 files changed, 6 insertions(+)
create mode 100644 conf/gitolite.conf
create mode 100644 keydir/comet.pub
初始化是根据/usr/share/gitolite/conf/example.conf 和 example.gitolite.rc 在/home/git下生成 .gitolite.rc,.gitolite,projects.list,repositories ,生成 gitolite-admin 和 testing 两个版本库,并在.ssh/authorized_keys中加入comet.pub文件。
客户端
8.获取服务器上的 gitolite-admin 项目,会有keydir和conf两个文件夹
git clone [email protected]:gitolite-admin
由于前面已经把comet用户的公钥加入git用户.ssh/authorized_keys中,这里是不需要git密码的。
注意:这里的gitolite-admin是git用户根目录中的repositories/gitolite-admin,不能用绝对路径,如:/srv这样的,但可以做软链接过去。
9.添加新组jichuteam、用户jichu、项目jichu,并推送到远程服务器
注:如果客户端是windows,使用Puttygen生成公钥和私钥:参数为SSH-2 RSA,1024位,按需加上密码。
如果之前是使用ssh-keygen生成的,在这里直接Load private key,然后save private key,保存为ppk格式才能用。
复制puttygen显示的公钥保存为*.pub文件,注意不是"save public key",保证公钥文件只有1行内容,否则不正确。把公钥给git的管理员,让他用gitolite-admin的方法把公钥加入git服务器,并设置好对应项目的权限。
在新的客户端生成密钥,并把公钥放到 gitolite-adminkeydir ,这里是Admin.pub
cd gitolite-admin/conf
vi gitolite.conf
修改为下面内容,其中repo是对应的项目版本库,RW+表示可读写,Admin是 Admin.pub 的文件名,表示用户,多个用户用空格隔开。
repo gitolite-admin
RW+ = comet
repo testing
RW+ = @all
repojichu
RW+=comet Admin
git push
10.到其他地方建立项目根目录,并设置默认用户和邮箱,在.git/config添加master主分支和远程服务器URL
mkdir jichu
cd jichu
git init
git config user.name Comet
git config user.email [email protected]
git remote add master [email protected]:jichu.git
11.在 jichu 目录下进行开发,这里新建了 log.txt(一定要有新文件),提交到index,加上"initial import"信息并提交到本地仓库,最后是推送到远程服务器。
echo "begin develop" > log.txt
git add .
git commit -a -m "initial import"
git push master master
服务器端
12.在服务器的 /home/git/repositories/ 可以看到有 jichu.git 的版本库。
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21