一,git服务器端:准备gitosis需要的各依赖软件

1,确认openssh是否存在?如不存在,以下列命令进行安装

  1. [root@yjweb ~]# yum install openssh openssh-server openssh-clients

2,安装git

  1. [root@yjweb ~]# yum install git

判断git是否安装成功?

  1. [root@yjweb ~]# git --version
  2. git version 2.18.2

3,安装python工具

  1. [root@yjweb ~]# yum install -y python2 python2-setuptools

检查python的setuptools是否安装成功?

  1. [root@yjweb gitosis]# python2 -c "import setuptools"

如无任何输出,表示安装成功

如有报错输出,表示安装失败

说明:此处要使用python2

因为gitosis的初始化需要python2,

如果使用python3会报错

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,git服务器端:创建git服务专用管理用户

1,创建git用户

  1. [root@yjweb ~]# groupadd git
  2. [root@yjweb ~]# useradd -g git git
  3. [root@yjweb ~]# grep git /etc/passwd
  4. git:x:1003:1003::/home/git:/bin/bash

2,确保git用户对git目录有写入权限

  1. [root@yjweb ~]# chown git:git /home/git
  2. [root@yjweb ~]# ll /home/ | grep git
  3. drwx------ 2 git git 62 Mar 9 17:00 git

三,git服务器端:安装gitosis

1,克隆gitosis这个项目到本地的source文件夹

  1. [root@yjweb source]# git clone https://github.com/res0nat0r/gitosis.git
  2. Cloning into 'gitosis'...
  3. remote: Enumerating objects: 734, done.
  4. remote: Total 734 (delta 0), reused 0 (delta 0), pack-reused 734
  5. Receiving objects: 100% (734/734), 147.40 KiB | 29.00 KiB/s, done.
  6. Resolving deltas: 100% (458/458), done.

2,安装

  1. [root@yjweb source]# cd gitosis/
  2. [root@yjweb gitosis]# python2 setup.py install

说明:此处要使用python2

因为gitosis的初始化需要python2,

如果使用python3会报错

说明:如果看到下面的提示表示安装成功

  1. Finished processing dependencies for gitosis==0.2

四,git服务器端:生成.ssh目录及授权文件:

  1. [root@yjweb ~]# mkdir -p /home/git/.ssh
  2. [root@yjweb ~]# chmod 700 /home/git/.ssh
  3. [root@yjweb ~]# touch /home/git/.ssh/authorized_keys
  4. [root@yjweb ~]# chown git.git -R /home/git

说明:authorized_keys文件用来供gitosis保存项目中的公钥

五,开发机客户端:生成密钥并上传到服务器上

说明:我们的开发机客户端,是一台运行ubuntu 19.10的机器

1,创建ssh密钥

说明:此处的客户端是一台ubuntu机器

  1. root@kubuntu:~# ssh-keygen -t rsa

操作中一路回车即可,无需输入密码

2,检查密钥对是否生成

完成后可以从.ssh目录下看到生成的密钥对

  1. root@kubuntu:~# ls .ssh/
  2. id_rsa id_rsa.pub known_hosts

其中 id_rsa.pub 是我们所要使用的公钥

3,把生成的公钥上传到git服务器

用scp或ftp工具,把id_rsa.pub复制到git服务器上

放到/tmp目录下

此处假设git服务器的ip地址是:123.124.125.126,端口地址是12345

  1. root@kubuntu:~# scp -P 12345 .ssh/id_rsa.pub sysop@123.124.125.126:/tmp/
  2. sysop@123.124.125.126's password:
  3. id_rsa.pub 100% 566 70.3KB/s 00:00

六,git服务器端: 初始化gitosis

1,切换到git账号,查看客户端上传的公钥是否存在?

  1. [root@yjweb ~]# su git
  2. [git@yjweb root]$ ll /tmp/id_rsa.pub
  3. -rw-r--r-- 1 sysop sysop 566 Mar 9 18:46 /tmp/id_rsa.pub

2,初始化gitosis项目

  1. [git@yjweb root]$ gitosis-init < /tmp/id_rsa.pub
  2. Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
  3. Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

3,初始化到底都做了哪些工作?

创建了一个gitosis目录和一个库目录

  1. [git@yjweb ~]$ ls
  2. gitosis repositories

在.ssh目录下的authorized_keys中写入了id_rsa.pub的内容

  1. [git@yjweb ~]$ cd .ssh
  2. [git@yjweb .ssh]$ more authorized_keys
  3. ### autogenerated by gitosis, DO NOT EDIT
  4. command="gitosis-serve root@kubuntu",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2E
  5. ...

七,开发机客户端:克隆gitosis-admin项目

root@kubuntu:~# git clone ssh://git@123.124.125.126:12345/gitosis-admin.git
正克隆到 'gitosis-admin'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
接收对象中: 100% (5/5), 完成.

可以看到gitosis-admin这个项目已下载到客户端的机器本地

  1. root@kubuntu:~# ls
  2. gitosis-admin node_modules package.json work

八,客户端查看gitosis-admin项目的remote设置

  1. root@kubuntu:~/gitosis-admin# git remote -v
  2. origin ssh://git@123.124.125.126:12345/gitosis-admin.git (fetch)
  3. origin ssh://git@123.124.125.126:12345/gitosis-admin.git (push)

九,查看本地centos的版本

  1. [webop@yjweb ~]$ cat /etc/redhat-release
  2. CentOS Linux release 8.0.1905 (Core)

十,gitosis的使用

  1. 参见这一篇:centos8上使用gitosis管理git项目
    地址:https://www.cnblogs.com/architectforest/p/12457035.html

centos8平台安装gitosis服务的更多相关文章

  1. windows平台安装redis服务

    有时候我们需要在windows平台上使用redis作为缓存服务,这个时候就需要将redis安装为window服务. 现在将我安装过程记录下来,方便自己或者有类似需求的同学参考.主要是参考网上现有的例子 ...

  2. centos8平台安装ansible2.9

    一,ansible的用途: ansible是基于python开发的自动化运维工具, 它基于SSH远程连接服务, 可以实现批量系统配置.批量软件部署.批量文件拷贝.批量运行命令等多个运维功能 因为基于s ...

  3. centos8平台安装redis6.0.1

    一,redis的官网: https://redis.io/ redis6于5月3日正式发布,它的新增功能: acl 多线程io cluster proxy resp3协议 本文演示redis6.0.1 ...

  4. centos8平台安装zookeeper3.6集群

    一,规划三台zk服务器构成集群 ip:172.18.1.1 机器名:zk1 对应myid: 1 ip:172.18.1.2 机器名:zk2 对应myid: 2 ip:172.18.1.3 机器名:zk ...

  5. centos8上使用gitosis管理git项目

    零,centos8平台如何安装gitosis服务? 参见:centos8平台安装gitosis服务 地址:https://www.cnblogs.com/architectforest/p/12456 ...

  6. 在Kubernetes集群里安装微服务DevOps平台fabric8

    转载于https://blog.csdn.net/wzp1986/article/details/72128063?utm_source=itdadao&utm_medium=referral ...

  7. centos 安装git 服务端

    // 在服务端安装好git后,开始安装gitosis 3.在服务器安装gitosis sudo yum install python python-setuptools cd /usr/local/s ...

  8. linux下源码安装apache服务

    1.搭建静态网站是,我们只需要搭建apache服务即可满足要求. 例如:如果我再客户端游览器输入地址,他会找到192.168.1.100这个服务器,然后根据端口会找到apache服务器.apache他 ...

  9. Windows平台安装配置mysql数据库

    Windows平台安装配置mysql数据库 作者:Eric 微信:loveoracle11g 去下载mysql软件 https://www.mysql.com/downloads/ https://d ...

随机推荐

  1. C# 读取 ttf字体文件里的 Unicode

    因为爬虫要解析 &#x880cc这种字体编码的值,下载到一个ttf文件,用百度字体编辑器 打开,可以看到每个字符对应的Unicode (数字下方 $23.$2A...这些), 我需要拿到这些映 ...

  2. 还不懂Redis?看完这个故事就明白了!

    我是Redis 你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上. 说起我的诞生,跟关系数据库MySQL还挺有渊源的. 在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发 ...

  3. jmeter压测以及用Badboy录脚本

    一.压测时的基本配置: 1.设置线程数.延迟几秒.循环次数打勾表示一直去循环.调度器打勾可以填写持续时间.启动时间等 线程数:就是并发的用户数   N Ramp-Up Period(in second ...

  4. [剑指Offer]18-题目一:删除链表的节点 题目二:删除链表中重复节点

    题目一 题目 O(1)时间复杂度删除给定链表节点. 题解 用待删除节点后一个节点的值覆盖待删除节点值,更新链接关系. 注意链表只有一个节点:删除尾结点:删除头节点的处理. 代码 class ListN ...

  5. 项目初始化CSS公共样式

    /*! normalize.css v6.0.0 | MIT License | github.com/necolas/normalize.css */ /* Document =========== ...

  6. Redis详细使用及结合SpringBoot

    今天咱来聊一下Redis五种数据类型的详细用法以及在代码中如何使用.废话不多说,开始! Redis五种数据类型: string:字符串对象 list:列表对象 hash:散列 set:集合 zset: ...

  7. CBV、正则

    CBV(源码分析) from flask import Flask, views app = Flask(__name__) class IndexView(views.MethodView): me ...

  8. 【Processing日常2】群星1

    之前在CSDN上发表过: https://blog.csdn.net/fddxsyf123/article/details/79747064

  9. 使用TiDB把自己写分库分表方案推翻了

    背景 在日益数据量增长的情况下,影响数据库的读写性能,我们一般会有分库分表的方案和使用newSql方案,newSql如TIDB.那么为什么需要使用TiDB呢?有什么情况下才用TiDB呢?解决传统分库分 ...

  10. Python-生成器函数(协程实现底层原理)-yield

    yield 1. 函数执行的时候,找到yield关键字,则会标记这个函数,返回生成器对象 2. Python解释器会记录最近一次函数中yield位置 3. 生成器对象也是分配在栈堆上 4. 通过yie ...