gitolite的部署

article/2025/10/3 21:57:36

gitolite服务部署:


1,在git服务器端安装git并创建git用户。

yum install -y git

useradd git

 


2,生成gitolite的管理账户,这个账户也可以在git服务器端生成,也可以在自己的客户端生成。(为了防止人员离职,导致管理员丢失,建议在git服务器端生成。我这里是在git服务器端生成管理员用户的)


su - git

ssh-keygen

cp /home/git/.ssh/id_rsa.pub /tmp/admin.pub

多次回车,生成秘钥对,找到~/.ssh/id.rsa.pub 上传到git服务器的/tmp上,并命名为admin.pub

 

 


3,切换到git用户,并确保~/.ssh/authorized_keys文件为空或者不存在

rm -f ~/.ssh/authorized_keys

 

 

4,安装gitolite


git clone git://github.com/sitaramc/gitolite #下载gitolite软件

mkdir -p $HOME/bin #创建存放gitolite相关命令的目录

gitolite/install -to $HOME/bin #安装gitolite,如果执行这个报错,请先执行 yum install -y perl-Time-HiRes。

echo "PATH=$PATH:$HOME/bin" >> .bashrc #将gitolite命令加入环境变量中,建议退出终端,重新进入。


gitolite setup -pk /tmp/admin.pub #将客户端的用户配置为git的管理员,其实就是将admin.pub的公钥添加到authorized_keys里面去了。

 


5,查看~/.ssh/authorized_keys 里面是否已经有添加进去的公钥

cat ~/.ssh/authorized_keys

另外,安装完成后,我们可以在$HOME下看到一个repositories目录,里面有两个仓库,分别为gitolite-admin和testing,其中gitolite-admin为管理仓库。

 

6,克隆gitolite-admin仓库

cd /tmp

git clone git@127.0.0.1:gitolite-admin


进入gitolite-admin仓库,会看到两个目录,分别为keydir和conf,其中keydir目录用来管理用户,在其中可以看到默认有一个文件叫做admin.pub,正是我们之前生成的管理用户的公钥文件.

查看conf里面的配置文件:

[git@iz2ze0n2ws2p2jpw1i9fd4z conf]$ cat gitolite.conf 
repo gitolite-adminRW+     =   admin repo testingRW+     =   @all

 

可以简单的发现 repo 定义仓库名

RW+ 表示权限 可读可写可强制更新

admin 表示admin用户,即admin用户可以对gitolite-admin这个仓库有可读可写可强制更新权限。

 

7,添加用户

添加用户其实蛮简单,只要在管理员克隆下来的gitolite-admin中,将用户添加到conf/gitolite.conf中,并将要添加用户的pub文件放入keydir中即可,然后push到git服务器中即可。

我这里添加一个xiaobai用户,并设置为管理员。

首先在原来的admin用户下克隆代码(上面已经克隆了):

cd /tmp/gitolite-admin

vim /conf/gitolite.conf

 

上传xiaobai用户的公钥到keydir中

 

 执行git相关命令,将变化的内容推送到git服务器上。

git add .git commit -m 'add xiaobai user to admin'git push 

  

 切换到小白账户,测试创建用户是否成功,克隆代码 

git clone git@git服务器地址:gitolite-admin 

 

如下

 

 

 

8,添加仓库,主要是更改gitolite.conf文件,定义1个repo即可。

 

 

 

 

9,权限说明

常用的配置:1,定义组@admin=xiaobai  xiaoa  #定义一个admin组,组员有xiaobai,xiaoa2,定义一个仓库repo spider3,@all 所有用户repo spiderRW = @all  #表示所有用户对spider仓库有读写权限

 

具体的可以参考如下:

1 @admin = breezey chenliang
2 repo gitolite-admin
3 RW+ = breezey
4 repo ossxp/.+
5 C = @admin
6 RW = @all
7 repo testing
8 RW+ = @admin
9 RW master = junio
10 RW+ pu = junio
11 RW cogito$ = pasky
12 RW bw/ = linus
13 - = somebody
14 RW tmp/ = @all
15 RW refs/tags/v[0-9] = junio
我们先对该示例文件作一个简单的说明,以方便大家对授权文件有一个基本的了解:
第1行定义了一个admin的组,该组里包含两个用户,分别是breezey chenliang
第2-3行定义了一个版本库gitolite-admin,并且指定breezey用户对gitolite-admin仓库拥有读(R),写(W)和强制更新(+)的权限
第4行通过正则表达式定义了一组版本库,即ossxp目录下的所有版本库
第5行定义admin组的用户可以在ossxp目录下创建版本库
第6行定义所有用户对ossxp目录下的版本库拥有读写的权限,但不能强制更新
第7行定义了一个版本库testing
第8行定义了admin组用户对testing库的所有分支和tag拥有读、写、重置、添加、删除的权限
第9行定义junio用户对master分支有读写的权限,还包括以master开头的所有分支。
第10行定义junio用户对pu分支拥有读写,重置,添加,删除的权限,还包括以pu开头的所有分支
第11行定义pasky用户对cogito分支拥有读写的权限,仅此分支,精确匹配
第12行定义linus用户对bw/拥有读写的权限
第13行定义somebody用户对testing仓库有写的权限
第14行定义所有用户对tmp/拥有读写的权限
第15行定义junio可以读写任意tag,包括以v加上数字开头的tag组的定义:
@admin = breezey chenliang
@user = @admin @staff user1
版本库的定义:
repo ossxp/.+ #匹配ossxp目录下的所有版本库
repo myrepo.$ #匹配以myrepo.结尾的版本库
repo sandbox/test1 #创建sandbox下的test1库
授权关键字:
C:
C代表创建。仅在符版本库授权时可以使用。用于指定谁可以创建与通配符匹配的版本库。
R,RW,RW+:
R为只读,RW为读写,RW+为读写及强制push
RWD,RW+D:
只有当授权指令中定义了正则引用(正则表达式定义的branch、tag等),才可以使用该授权指令。其中 D 的含义是允许删除和正则引用匹配的引用(branch or tag)
RWCD,RW+CD:
只有当授权指令中定义了正则引用(正则表达式定义的branch、tag等),才可以使用该授权指令。其中 C 的含义是允许创建和正则引用匹配的引用(branch or tag),D的含义是允许删除和正则引用匹配的引用(branch or tag )
-:
减号(-)是一条禁用指令,只对写操作起作用,不会对用户的读操作施加影响。

 

参考:https://www.linuxidc.com/Linux/2014-02/96991.htm

转载于:https://www.cnblogs.com/lin1/p/9180784.html


http://chatgpt.dhexx.cn/article/LvICD7oA.shtml

相关文章

使用gitolite在服务器上创建一个git分支

说明: 在服务器(IP:9.0.12.99)上建立一个git管理账号zjr,密码是:123456,主要改账号必须有sudo权限 #useradd zjr 密码是123456 客户端(IP:90.0.98.156)的账号:zhaojr 密码是:zhaojr Git本身的账号…

CentOS搭建gitolite服务器

目录 前言 一、创建虚拟机 二、修改虚拟机用户名 三、创建用户 四、通过源码安装gitolite 五、版本库镜像 六、验证镜像是否成功 七、新增加用户 八、创建远程仓库 参考资料 前言 一提起 Git,大家基本上都会想到 GitHub, GitLab 这一类在线托管平台。 我…

Centos下安装gitolite+git

一直以来我都是用SVN的,但最近做迭代开发、多分支时,发现SVN使用起来极不方便。因此打算换成git做源码管理。git的理论以及特性本文就不做讲解了,本主主要讲解怎么安装,配置git、以及git权限管理服务gitolite. 组网结构 git服务器…

gitolite安装及配置教程centos7

1. 安装依赖包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y 2.安装 Git yum -y install git 3.创建git用户 useradd git passwd git # 输入再次git用户的密码# 切换到git用户 su git4.获取Gitolite版本库并安装配置 4.1 获取…

Git服务器搭建及Gitolite权限管理

之前写过一个Git服务器的简单搭建,那个的权限管理是通过手动配置的。这次用Gitolite来管理,方便快捷。 环境:Ubuntu Server 16.04.3(命名GitServer),网络正确配置192.168.xx.xx(可以连接Intern…

gitolite

2019独角兽企业重金招聘Python工程师标准>>> gitolite是什么 gitolite是git的权限控制系统。有如下特性: a. 在git服务器上需要一个真实的unix用户 b. 能用不同的账号访问git服务器,这些账号不是真实的unix用户也没有shell权限 c. 能控制多个git仓库的读…

搭建网站显示成功后却打不开主页原因

今年自学了一下建站,在腾讯云购买了域名和服务器,用护卫神主机大师搭了个网站。网站十分简单,运行得十分顺利。 过了两天,网站突然打不开了,页面显示没有备案。上网一查,备案需要准备资料,拍照…

【很容易忽视的问题】为何使用护卫神iis-windows服务器,在使用护卫神主机修改网站信息后则无法访问的根本原因??

本来是正常的网站,只要使用护卫神的主机大师修改一下,网站就提示错误:无法建立到 xxx.com 服务器的连接 不论基于哪个Lamp搭建环境【护卫神、phpstudy、宝塔Lamp】一旦你使用第三方软件为何网站,则必须确保以第三方的为准统一修改…

360主机卫士Linux版,360主机卫士

什么是虚拟补丁? 是一种可以使网站站长摆脱补丁管理困境的解决方案。 虚拟补丁简单的说就是"软补丁",针对CMS的漏洞,不用站长自己修改CMS代码,在应用防火墙上,生成的特定防护规则。 它的好处: 1.不用修改代…

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

首次使用护卫神的主机系统来搭建运行自己的系统,发现没有办法直接指向框架的public,研究了一下总结出两种方案.如以下: 一. 1,先随意的创建一个主站不做使用. 2,在主站下面新建一个子站作为自己实际的项目配置.在主站目录的基础上追加public文件夹. 以上是第一种解决方法,很常…

护卫神·Nginx大师面板上如何设置伪静态

许多客户在使用护卫神Nginx大师创建网站后,因SEO要求,可能需要使用伪静态功能,在这里护卫神就大体说一下如何设置伪静态。本例以安装wordpress博客程序后设置伪静态;一、先打开桌面上的“护卫神Nginx大师”,右键点击要…

linux系统终端用户名和密码忘记了,主机大师(Linux)登录账户密码忘记的解决办法...

护卫神主机大师linux最新版本方法: 我们建议在初次安装完后复制相关的登录信息并妥善保存好。如没有复制下来,忘记了相关的登录信息或者是账户密码,可通过以下办法解决。 一、登录ssh终端后复制以下命令执行就可以创建一个新的用户&#xff1…

护卫神设置public目录(IIS下TP5如何设置运行目录)

护卫神设置public目录 最近有人问小编,护卫神主机系统或者IIS配置PHP的时候,public设置为对外公开目录这个问题百度无法搜索到真实解决办法,那么我们应该如何将运行目录设置为/public呢? 当我们使用护卫神主机系统配置Thinkphp的…

护卫神mysql远程_护卫神 主机管理系统使用说明(MySQL管理)

感谢大家使用【护卫神主机管理系统】v3.1,该版本支持在windows server 2003/2008/2012,含32位和64位,直接开设配置web站、ftp站,以及sql server和mysql,是您开设和管理虚拟主机的绝好帮手。 但是对于新用户可能在使用上…

护卫神apache大师3.0.0 php,护卫神Apache大师(PHP环境套件)V3.2.0 官方免费版

护卫神Apache大师是一套为方便广大用户管理服务器而开发的软件,集成了多版本PHP环境、Apache、Tomcat、JSP、MySQL、PhpMyadmin、主机管理系统、FilaZilla FTP,支持开设和管理多个主机、MySQL数据库。 【软件性质】自主开发,完全免费。 【运行…

系统切换服务器方法,护卫神•主机管理系统更换服务器方法(移机)

本文主要介绍如何整体迁移主机管理系统和网站到新服务器。 一、备份数据 将老服务器上的主机管理系统数据库备份。 位置:在主机管理系统安装目录下的host/admin/database/my.asp 二、安装主机管理系统 在新服务器安装护卫神•主机管理系统,推荐安装最新版…

护卫神主机大师或者是主机管理系统中创建网站时提示开设失败的解决办法

一种情况:阿里云默认的系统一般会开启密码复杂度的功能,这样在使用护卫神主机大师或者是主机管理系统开设网站时,填写的密码如不符合系统的复杂度要求。那么将出出现以下的提示:解决办法如下:1、打开系统组策略 2、找到…

护卫神 主机大师 MySQL无法远程连接的解决方案

护卫神 主机大师 MySQL无法远程连接的解决方案 背景:服务器小厂独立ip,其他环境直接用护卫神一键安装,因为远程桌面不总是很方便,远程连接MySQL报错 解决办法: 1、各种搜索引擎一阵猛搓,无法解决&#xf…

服务器维护护卫神,护卫神主机重启服务器

护卫神主机重启服务器 内容精选 换一换 通过Web浏览器登录资源,会话连接断开,提示网络连接异常,连接已断开,请重试(Code:T_1006)。云堡垒机系统与资源服务器之间网络连接不稳定,导致连接断开。云堡垒机或资…

护卫神主机大师php,护卫神主机大师下载

护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHPMySQLFTP伪静态PhpMyAdmin),并可在线开设主机、SQLServer和MySQL;Web方式管理,拥有独立前台和后台面板。护卫神主机大师支持WindowsServer2008/2012,推荐在全新操作系统下安装。 软件…