阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7中安装搭建Git服务器Gitolite

162次阅读
没有评论

共计 3640 个字符,预计需要花费 10 分钟才能阅读完成。

关于 Gitolite

Gitolite 是一款免费的开源 Git 服务器,如果要在单个服务器中托管多个 git 存储库,Gitolite 应该时最完美的。Gitolite 是 Git 之上的访问控制层,因此您可以配置基于用户设置 Git 访问权限。Gitolite 提供对许多 gitolite 用户的访问,并控制对许多 Git 存储库的访问。

以下是 Gitolite 的图形概述:

CentOS 7 中安装搭建 Git 服务器 Gitolite

特色一目了然

关于 Gitolite 功能,我们可以列出以下内容:

  • 非常强大的规则语言(根据分支 / 标签名称,触摸的文件 / 目录,更改的文件的大小,更改的文件的数量等决定)。
  • 编写规则的方便功能(备份组,用户组,从 LDAP 获取用户组信息,包括文件,宏 …)
  • 高度可定制和可脚本化,特别是用户自定义命令。许多内置的命令和选项。
  • 强大灵活的镜像系统。
  • 用户可以创建自己的回馈并设置访问权限(如果允许的话)。

在本教程中,让我们看看如何在 CentOS 7 最小服务器中安装搭建 Git 服务器 Gitolite。

我的测试环境详细信息

为了本教程的目的,我将使用以下测试环境。

操作系统:CentOS 7 64 位最小服务器
IP 地址:192.168.1.150/24
主机名:server1.linuxidc.local

前提条件

1. 更新服务器并安装先决条件

使用命令以 root 用户身份更新 CentOS 7 服务器:

[root@server1 ~]# yum update

安装以下前提条件:

[root@server1 ~]# yum install autoconf git

2. 创建 Gitolite 用户

接下来,我们为 Gitolite 创建一个用户,并使用以下命令为用户设置密码:

[root@server1 ~]# adduser git
[root@server1 ~]# passwd git

3. 创建 SSH 公钥并将其复制到 git 用户

我们需要创建一个 SSH 公用密钥并将其发送到 Gitolite 服务器。

使用命令创建 SSH 密钥:

[root@server1 ~]# ssh-keygen

输出如下内容:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
de:5f:11:3e:ab:91:c2:6e:3d:99:82:36:54:8a:fd:9d root@server1.linuxidc.local
The key's randomart image is:
+--[RSA 2048]----+
| |
| |
| . |
| . . . |
| oSo + |
| ..+o . + |
| ..o+oo+o |
| +.+oE+ |
| . o..o. |
+-----------------+

CentOS 7 中安装搭建 Git 服务器 Gitolite

如上图所示,有两个 keys 生成。一个是私钥,你应该保密,另一个是公钥。你应该分享这个公钥,无论你想与谁沟通。在我们的例子中,我们分享这个公钥给用户 ’git’。记住我们以前的步骤已经创建了一个名为“git”的用户。

首先制作您的公钥的副本,如下所示。

[root@server1 ~]# cp .ssh/id_rsa.pub sk.pub

现在,让我们使用以下命令将公钥复制到用户 ’git’ 的主目录中:

[root@server1 ~]# cp sk.pub /home/git

如果您从远程系统复制该密钥,则应该使用以下命令:

[root@server1 ~]# scp sk.pub git@<ip-address>:/home/git

您可以验证密钥是否已成功传输到“git”用户的主目录:

[root@server1 ~]# ls /home/git/

CentOS 7 中安装搭建 Git 服务器 Gitolite

运行以下命令来更新 Bash:

 
[git@server1 ~]$ source .bash_profile

我们已经完成了必要的必备步骤。现在,让我们继续安装 Gitolite。

安装 Gitolite

使用命令切换到“git”用户:

[root@server1 ~]# su - git

在“git”用户的主目录中创建一个名为 bin 的目录。

要这样做,请运行:

[git@server1 ~]$ mkdir ~/bin

现在,git 克隆到最新的 Gitolite 存储库,如下所示。

[git@server1]$ git clone git://github.com/sitaramc/gitolite

应该输出如下内容:

Cloning into 'gitolite'...
remote: Counting objects: 9225, done.
remote: Total 9225 (delta 0), reused 0 (delta 0), pack-reused 9224
Receiving objects: 100% (9225/9225), 3.79 MiB | 260.00 KiB/s, done.
Resolving deltas: 100% (5269/5269), done.

CentOS 7 中安装搭建 Git 服务器 Gitolite

接下来,使用命令,在〜/ bin 目录中创建 Gitolite 符号链接:

[git@server1 ~]$ gitolite/install -ln ~/bin

上述命令不会显示任何消息。您将在〜/ bin 目录中看到 Gitolite 符号链接。

[git@server1 ~]$ ls ~/bin

CentOS 7 中安装搭建 Git 服务器 Gitolite

最后运行以下命令,使用 SSH 公钥安装 Gitolite:

[git@server1 ~]$ gitolite setup -pk sk.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)

CentOS 7 中安装搭建 Git 服务器 Gitolite

如果您收到以上输出,恭喜!Gitolite 已经成功安装。

你可能会看到一些警告。没事。它们在新安装中是正常的。

测试 Gitolite

现在,让我们来测试 Gitolite 是否正常工作。切换到您创建 SSH 密钥的帐户。在我的情况下,我从我的 root 帐户创建了 SSH 密钥。

[git@server1 ~]$ su - root

尝试从新安装的 Gitolite 服务器克隆 gitolite-admin 存储库。

要这样做,请运行:

[root@server1 ~]# git clone git@192.168.1.150:gitolite-admin

您将被要求输入 root 用户密码。因为我们已经交换了 SSH 密钥。

输出如下内容

Cloning into 'gitolite-admin'...
The authenticity of host '192.168.1.150 (192.168.1.150)' can't be established.
ECDSA key fingerprint is ed:6b:ab:6d:b8:58:d0:f2:77:67:62:ef:90:51:26:ad.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.150' (ECDSA) to the list of known hosts.
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.

CentOS 7 中安装搭建 Git 服务器 Gitolite

使用命令检查 gitolite-admin 存储库内容:

[root@server1 ~]# ls

CentOS 7 中安装搭建 Git 服务器 Gitolite

[root@server1 ~]# ls gitolite-admin/

CentOS 7 中安装搭建 Git 服务器 Gitolite

OK。Gitolite 正在工作!

我们刚刚覆盖了安装部分。前往 Gitolite 基本管理指南,了解更多关于 Gitolite Git 服务器的使用情况。

来源和参考链接:

  • Gitolite homepage
  • Gitolite installation guide 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-07/145764.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3640字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中