企业级Git Server服务的部署与应用
《企业级Git Server服务的部署与应用》要点: 开源的普及,让使用Git来进行版本控制管理的开发者、团队、企业也越来越多. 市场上,无论国内外,提供的免费的Git托管服务商也越来越多.Github当然首当其冲,还有Gitlab、Bitbucket等.国内基于Git的代码托管也非常多,如果是面向企业,收费其实都不低.最重要的,也不是收费问题,源代码对于企业来说是机密等级非常高的东东,放在自己的服务器上安全等级相对来说要高一点.所以企业就需要有自己内部的Git服务解决方案了. 今天就来说说企业级的Git应用部署. 1安装Git当然先说Git的安装,这里都以CentOS 6.x 64位操作系统为例. 首先去下载Git的源代码,当然从下面的网址去下载:
或者:
目前可以看到Git的最新版已经发布到了2.12,我们就以这个Releases版本为例(懂C和C++的童鞋可以去折腾下Git的开发版). Git软件版本的迭代更新还是发布的比较频繁的.下载了Git源码(从Github下载可能还是需要花费一些时间,原因你懂的),先别急着解压,先来做另一件事. 2安装系统依赖包直接使用yum进行安装:
如果有些软件提示找不到的,给CentOS装上epel的Yum源,即可安装成功. 3配置编译拿到源代码之后就行就是下面的三步了:
这里重点说说编译配置,来看看配置参数:
这里我们把Git安装到/usr/local/git目录下面,如果有Python环境的也可以通过–with-python指定Python解释器. 在执行完configure配置命令后,编译有两种方式: 常规编译:
这样安装,不会编译man文档,编译的时间比较快. 带man文档的安装方式:
注意这里,安装man文档时,需要解决几个依赖,否则会报错.这大概就是一个比较完整的编译安装,其实官方也提供man文档的下载,可以不自行编译.
4Git初始配置完成了Git的编译安装后,需要进行一些初始设置.如果不设置,会出现一些问题.
这里有一个动态库的链接配置,需要留意.执行git –version的时候,就可以看到显示为2.12的版本.到这里,git就正式可用了,但是还是作为客户端来使用的. 5整合Apache安装了Git之后,就需要整合Apache,来提供基于http的Git服务.Apache服务器可以使用Yum来安装,这里不多赘述.整合Apache配置:
注意加粗部分的配置,这一句“/usr/local/git/libexec/git-core/git-http-backend/”就是用来整合Git和Apache的. 另外git.auth是用来做登录授权配置的,配置这授权文件使用htpasswd命令进行配置.配置了git.auth之后,启动Apache,就可以使用http来提供Git服务了. 6创建第一个版本库我们来创建第一个版本库:
这里还需要注意一个问题,需要把版本库所在目录授权给Apache的运行用户,否则会出现无法进行git push的操作.这是Linux层的文件权限控制问题. 7克隆与提交版本库这里就属于客户端的操作了.在创建好了上面的第一个版本库后,就可以在客户端进行Git操作了:
在Clone的过程中,需要输入在git.auth文件中配置的用户名和密码,这点需要注意. 完成Clone操作了,就看可以在客户端完全使用git来管理你的代码了. 这样把Git部署在自己的服务器上,就完全不限制仓库的数量和容量问题,想创建多少就多少. 8配置基础管理Web端我们在配置好了上面的http服务后,可以使用git clone http://git.test.com/project.git进行代码的克隆,这里虽然提供了http服务,但还不能在浏览器里访问,要实现这一Web基础功能,还需要对Apache进行下一步的配置:
注意这里使用的81端口,不能再用80端了. 上面有一个/var/www/gitweb的目录,这个目录需要放置一些脚本文件:
然后需要配置/var/www/gitweb/gitweb.cgi这个文件:
这里$projectroot就需要改成版本库的根目录,这里使用的是/data/git目录. 重启下Apache,然后就可以在浏览器上访问:http://git.test.com:81/,这里也是需要输入用户名和密码(也即里git.auth文件里配置的). GitWeb的UI效果就如上图所示,这里我们使用https://git.kernel.org/cgit/来演示. 9仓库的备份
备份,备份,备份!! 得说三遍才行!! 还记得今年年初Gitlab丢数据的故障,这可是国际级的版本托管且比较有影响力的故障事件了. 备份可以使用Shell脚本,设置定时任务来实现备份.主要注意备份下面几个文件或目录:
其中/data/git目录就是仓库的根目录了,另外两个文件就是与Apache进行整合的配置文件和Git访问的用户权限控制文件. 备份的方式注意一定要进行异地备份,不要备份在本机,这可是常识性问题了. 到这里,就可以正式启用Git服务来给自己的企业做代码托管了. 10第三方Git Server的解决方案这里推荐几款市场上比较火的第三方的开源的Git Server解决方案:
Gogs是基于Go语言开发的,Gitlab基于Ruby开发的.Gitlab比Gogs更重量级、更加麻烦一点,但网上也有一些一键安装的Gitlab的脚本,基本可以成功安装.Gogs来说相对轻量级一点,部署也比较容易一点,同时具备了Github的大部分功能. 关于Gogs和Gitlab的具体部署,这里就不多说了,官方都有提供比较详细的教程和文档,可以参照官方的说明来部署.其实不管是Gogs或者Gitlab,或者自己部署Git http服务,但离不开底层的Git软件. 文章来自微信公众号:Python运维圈 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |