设为首页 收藏本站
查看: 1053|回复: 0

[经验分享] 在Centos7上安装git服务

[复制链接]

尚未签到

发表于 2018-1-15 22:02:24 | 显示全部楼层 |阅读模式
前言
  一开始,打算在Windows上安装git服务,折腾了一天,在Copssh(win2008、win7、win2003)上总是配置不成功,最终无功而返,最后只好先放弃Windows了,以后有时间再研究研究。
  当然Windows版的还有其它软件可用,比如Gitstack、Gitblit等,不想搞Windows版的了,不是这个限制就是那个问题,麻烦多,所以直接上Linux版的。
  下面一段是Linux工具,引用自http://blog.chinaunix.net/uid-15174104-id-3843570.html
  在Git服务管理工具这个领域,主要有三种流行的方案,它们分别是:
  Gitosis - 轻量级,开源项目,使用SSH公钥认证,只能做到库级的权限控制。目前项目已经停止开发,不再维护。
  Gitolite - 轻量级,开源项目,使用SSH公钥认证,能做到分支级的权限控制。
  Git + Repo + Gerrit - 超级重量级,集版本控制,库管理和代码审核为一身。可管理大型及超大型项目。
  注:其实还有很多,如:gitlab、gitblit、gitbucket、gogs,请参考“几个Git仓库开源软件的比较” http://dz.sdut.edu.cn/blog/subaochen/2016/01/github_like_softwares/

安装

Step 1 安装git
  

yum install perl openssh git  


Step 2建立一个git用户,并做初步配置
  

adduser --system --shell /bin/sh --create-home --home-dir /home/git git  
# 进入git用户的home目录
  
cd
/home/git  
# 新建一个目录,用于存放git的全部仓库
  

mkdir repositories  
# 设置该目录的所有权
  

chown git:git -R ./repositories  
# 修改该目录的操作权限
  

chmod 700 ./repositories  


Step 3生成一对公钥证书(空密码则直接回车)
  

# 可直接在服务器上生成,也可以在本地生成,在这里我直接在服务器上生成了。  

ssh-keygen -t rsa  
# 最后生成两个文件,分别为id_ras.pub(公钥) 和id_rsa(私钥)
  
# 将公钥移到
/home/git/.ssh/目录下,注意,公钥文件名改了,公钥名对应gitolite里配置的用户名,admin我用于做系统管理员的账号名。  

mv>
# 将私钥id_rsa用SFTP下载回到本地Windows的C:\Users\Administrator\.ssh\目录下,Administrator是我登录Windows的账号,你要改成自己电脑对应的目录下,用于本地git登录远程服务器。  


Step 4切换至刚建的git用户,安装gitolite
  

su git  
git clone git:
//github.com/sitaramc/gitolite  
mkdir -p $HOME/bin
  
# 安装gitolite
  
gitolite/install -to $HOME/bin
  
# 安装时报错,根据错误提示,百度了几下,安装相关的依赖
  
yum install wget perl-ExtUtils-MakeMaker gcc
  

  
wget http://www.cpan.org/modules/by-module/Data/Data-Dumper-2.154.tar.gz
  
tar xvzf Data-Dumper-2.154.tar.gz
  
cd Data-Dumper-2.154
  
perl Makefile.PL
  
make
  
make install
  


Step 5配置gitolite
  

$HOME/bin/gitolite setup -pk admin.pub  
# 完成后,在
/home/git/repositories里面,生成两个仓库gitolite-admin.git和test.git,一个是管理仓库用的,另一个是测试用的;下面我们主要对gitolite-admin.git仓库进行操作,就可以管理服务器上的全部仓库了。  


Step 6管理gitolite
  

git clone git@172.16.13.229:gitolite-admin  
#完成后有两个目录,分别是conf和keydir,conf
/gitolite.conf是用户、仓库的权限配置,keydir是放对应用户的公钥,修改好后push回服务器,就完成了管理操作。  

  下面,我们用个例子说明如何管理git仓库。
  1、  最初的conf/gitolite.conf内容如下:
  

repo gitolite-admin  
RW
+     =   admin  

  
repo testing
  
RW
+     =   @all  

  2、  然后我们在gitolite.conf内容下面添加如下内容
  

@ android_group = zhangsan lisi  

  
repo androidapp
  
RW
+     =   @android_group  

  3、  @ android_group = zhangsan lisi,定义了@android_group组,组员是zhangsan和lisi两个人,当然,组里也可以包含另一组,人员或组之间用空格分开,我们修改后如下:
  

@ android_group = zhangsan lisi  
@ ios_group
= zhangsan wanwu  
@ app_group
= @android_group @ios_group  

  
repo androidapp
  
RW
+     =   @android_group  

  
repo appdoc
  
RW
+     =   @ app_group  

  4、  repo androidapp,定义了一个androidapp仓库,该仓库读写权限为@android_group,最后push回服务器后,我们就可以在本地执行
  

git remote add origin git@172.16.13.229: androidapp.git  
git push origin master
  

  两次命令来首次推送本地仓库到远程服务器仓库,下次有修改再推送时直接git push即可。

Step 7给公司里每位童鞋分配私钥证书
  1、  生成证书
  

ssh-keygen -t rsa –C “zhangsan@example.com”  

  2、  将公钥id_ras.pub改名为童鞋名字全拼,比如zhangsan.pub,并拷到gitolite-admin仓库的keydir目录下;
  3、  将私钥id_rsa飞Q发给相应的童鞋;
  4、  重复1到3,直到全部发给每位童鞋;
  5、  修改gitolite.conf,配置各个项目的访问权限;
  6、  推送gitolite-admin修改后的内容到服务器;
  7、  完成分配工作。
  注:人员名字全拼为公钥文件名,同时也是gitolite.conf里的用户名;私钥id_rsa让童鞋们放在C:\Users\Administrator\.ssh\目录下。
  Administrator是系统登录名,如果你的不是这个名,那就改改。
  当然了,也可以让童鞋们自己生成公钥对,然后把公钥统一发给我。

在Windows下使用git图形客户端
  1、  安装Windows git,下载地址https://git-for-windows.github.io/,下载后一路next安装即可。
  2、  安装TortoiseGit,TortoiseSVN的兄弟,下载地址https://tortoisegit.org/download/,也是一路next安装。
  3、  配置TortoiseGit,参考其他文章即可,网上文章还是比较多的,比如下面这篇写得就很好http://blog.csdn.net/renfufei/article/details/41647937。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435500-1-1.html 上篇帖子: git使用-将本地项目添加到远程代码库 下篇帖子: window下版本控制工具Git 客户端安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表