centos6中gitolite安装配置步骤详解

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 git@192.168.*.*: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             //定义的仓库名,也就是git@192.168.*.*: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 comet@192.168.1.254: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
         "user@host.pub" 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 git@192.168.1.254: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 iamcomet@3gcomet.com
git remote add master git@192.168.1.254: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 的版本库。

时间: 2025-01-30 12:40:05

centos6中gitolite安装配置步骤详解的相关文章

centos6下awstats安装配置步骤详解

awstats功能 一:访问量,访问次数,页面浏览量,点击数,数据流量等 二:精确到每月.每日.每小时的数据 三:访问者国家 四:访问者IP 五:Robots/Spiders的统计 六:访客持续时间 七:对不同Files type 的统计信息 八:Pages-URL的统计 九:访客操作系统浏览器等信息 十:其它信息(搜索关键字等等) I. 下载源码 下载地址:http://www.awstats.org/#DOWNLOAD 老高推荐下载Last stable # Last stable vers

CentOS 7中MARIADB安装配置步骤详解

系统环境:CentOS 7 MariaDB版本:MariaDB 10.0.14 下载地址:http://mirrors.neusoft.edu.cn/mariadb/mariadb-10.0.14/source/mariadb-10.0.14.tar.gz 其他包地址:https://downloads.mariadb.org/ 添加一个mysql用户 useradd mysql 开始编译安装MariaDB wget http://mirrors.neusoft.edu.cn/mariadb/c

php5.3.10的安装配置步骤详解

在linux中php安装配置与windows中有不小的区别了,在linux中几乎都是代码形式了,下面我们一起来看看php5.3.10的安装配置步骤详解,希望下文可帮助到各位. 下面以最新的php-5.3.10为例进行安装. wget http://cn.php.net/distributions/php-5.3.10.tar.gz tar -zxvf php-5.3.10.tar.gz cd php-5.3.10 ./configure --prefix=/usr/local/php --wit

Apache的mod_deflate模块安装配置步骤详解

最近把博客从虚拟主机搬到 VPS 上,自然一番折腾.估计围绕这一过程,写三四篇博客不是梦. 这是第一篇,服务器端的压缩功能 – 服务器在返回内容前先对内容做 gzip 压缩,以减小传输的文件大小 – 照 Google 的说法,能减小 90%,但这也不是重点,重点是服务器端不开启 gzip 压缩的话,Google PageSpeed 的测试就会扣分 – 我个人特别在意这个分数. Apache 下,压缩功能由 mod_deflate 模块控制. 安装# 我的 VPS 系统装的是 openSUSE 1

centos下Nginx安装配置步骤详解

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环境可以使用以下指令 apt-get install build-essential apt-get install libtool centos平台编译环境使用如下指令 安装make: yum -y install gcc automake autoconf libtool make 安装g++:

linux中mysql主从配置步骤详解

一.mysql主从方式: 同步:主服务器有数据写入,存储在硬盘,记录二进制日志一份.二进制日志完整发送给从服务器记录于中继日志中,从服务器回应主服务器已收到, 异步:主服务器写入数据,存储磁盘,记录二进制日志,直接反馈客户端:至于从服务器收到与否,不予理会 mysql的复制默认为异步模式 二.配置主从服务器 1.先在两台机器上分别安装好mysql,版本需要一致,然后配置,启动 2.主服务器配置 1).查看mysql是否正常启动  netstat -nltp | grep 3306 2)修改配置文

nginx下php-fpm安装配置步骤详解

从PHP 5.4 RC2开始,php-fpm已经转正了,不再被php团队标注为EXPERIMENTAL(实验性的东西)[2-3]   . 相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼. PHP5.3.3已经集成php-fpm了,不再是第三方的包了.PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程.可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PH

linux系统中VNC安装配置方法详解

1.确认VNC是否安装 默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上. 确认是否已经安装VNC服务及查看安装的VNC版本 [root@testdb ~]# rpm -q vnc-server vnc-server-4.1.2-9.el5 [root@testdb ~]# 若系统没有安装,可以到操作系统安装盘的Server目录下找到VNC服务的RPM安装包vnc-server-4.1.2-9.el5.x86_64.rpm,安装命令如下 rpm -i

php扩展xcache安装配置步骤详解

1.安装xcache扩展 tar -xvf xcache-3.2.0.tar.gz  cd xcache-3.2.0  ./configure --with-php-config=/usr/local/php/bin/php-config  --enable-xcache  make && make install 会生成类似如下信息 [root@master xcache-3.2.0]# make install <span style="line-height: 1.7