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

[经验分享] 安装git权限管理工具gitolite实践

[复制链接]

尚未签到

发表于 2018-9-18 10:41:08 | 显示全部楼层 |阅读模式
看着github上的讲解,本来以为这工具很简单就能安装上的,但中间还是出现了各种报错,最后弄了好久才弄通是怎么回事,现在分享一下这款工具的操作。  gitolite 是方便通过 Git 与 ssh 架设中央服务器的软件。
  首先看看github上对gitolite的介绍
Gitolite allows you to setup git hosting on a central server, with very fine-grained access control and many (many!) more powerful features.  它的具体安装方法和用法都在github上README.txt里有详细介绍(这也是我刚开始觉得简单的原因)。那我们看一看它的基础文档:(为了方便,在此是翻译后的文档),本篇主要关注安装部署和基本用法
本文包括Gitolite的安装及一些常用功能的使用方法. 如果您需要更详细的介绍, 或在解决某个问题, 异或只是想看看那些这里没有提及的功能的话, 请阅读Gitolite的在线文档: http://sitaramc.github.com/gitolite/master-toc.html本文包括以下几个章节:

  • 安装和部署
  • 添加新用户或代码库
--------------------------------------------------------------------安装和部署
---------------------服务器环境

  • 任意UNIX操作系统
  • SH
  • git 1.6.6+
  • perl 5.8.8+
  • openssh 5.0+
  • 一个独立的用户(本文中假定该用户名为git), 仅在shell中被其他用户的'su git'命令使用
安装步骤

  • 登录系统, 打开shell, 并切换到git(即前面提到的独立用户, 译者注)用户
  • 确保~/.ssh/authorized_keys文件不存在或为空文件. (gitolite使用此文件保存公钥文件)
  • 确保您的公钥文件已经准备好, 如: ~/YourName.pub (创建公钥文件的方法: ssh-keygen -t rsa -f ~/.ssh/YourName, 其中YourName为一个对您来说有意义的名字, 译者注)
  • 执行以下命令:1git clone git://github.com/sitaramc/gitolite2mkdir -p $HOME/bin3gitolite/install -to $HOME/bin4gitolite setup -pk YourName.pub如果最后一行命令出错的话, 可能是因为'bin'目录不在你的PATH中, 您可以选择将bin加入或直接执行:1$HOME/bin/gitolite setup -pk YourName.pub
添加新用户或代码库
不要在服务器上直接手动添加新用户或创建代码库。 Gitolite通过修改一个名为“gitolite-admin"的特殊代码库来完成新用户、代码库的创建及访问控制规则的设置。------要想管理您的代码库,请先在本地做如下操作(如果您还没有这样做的话)1git clone git@host :gitolite-admin注意:如果服务器提示您输入密码,那么请查检前面所说的准备工作是否已经做了。命令成功后,您可以看到在gitolite-admin目录下有两个子文件夹:conf和keydir。要添加新用户alice, bob and carol, 向他们索取公钥并将这些公钥复制到keydir中,如:alice.pub, bob.pub, carol.pub要添加新代码库,并设置访问控制的话,编辑conf/gitolite.conf文件,在文件尾追加如下代码:1repo foo2RW+=alice3RW          =bob4R           =carol对于访问控制的具体介绍,请参照”访问控制“章节。当你完成这些操作之后,执行如下命令使之生效:1git add conf2git add keydir3git commit -m 'added foo, gave access to alice, bob, carol'4git push当push完成后,gitolite会自动创建三个新用户,并将他们的公钥文件添加到~/.ssh/authorized_keys文件中, 同时创建一个新的名为‘foo’的空代码库。  一定要注意这里面提到的安装的准备条件的第三步(确保公钥文件已经准备好),我因为对这个的理解有误,造成了我很多的麻烦:
  先谈谈正确的做法,把你作为管理员的公钥文件上传到git服务器上(注意名字,否则生成的配置文件会读错你本地的用户名,但实际上只要你通过了本地ssh到git服务器的认证,便不妨碍管理员进行管理)
1git clone git://github.com/sitaramc/gitolite2mkdir -p $HOME/bin3gitolite/install -to $HOME/bin4gitolite setup -pk YourName.pu依次执行完,你便可以再本地直接  git clone git@host:gitolite-admin
  进行管理了。
  以上是正确的方法设置,你的push及客户端clone均不受限制,可谓风雨无阻。
  下面聊聊我出现的毛病啊,真是整死我了:
  我准备的公钥文件是git服务器上git用户的公钥(真不知道当时怎么想的),然后做了和大家一样的操作,然后我在本地clone的时候必须跟上gitolite-admin的路径才能clone下来,不但如此啊,我在配置文件里新建的库,clone的时候也必须是完整的路径,并且当我的客户端有修改要更新,push不上去,一直在报各种各样的错,各种百度谷歌啊,主要有句提示是remote: Empty compile time value given to use lib at hooks/update line 6
  相关信息有:
Empty compile time value given to use lib at hooks/update line 6

  • (followed by Can't locate Gitolite/Hooks/Update.pm in @INC a couple oflines later).You're bypassing gitolite.  You cloned the repo using the full path (i.e.,including the repositories/ prefix), either directly on the server, orvia ssh but with a key that gives you shell access.Solution: same as for the previous bullet.NOTE: If you really must do it, and this is a one-time thing, you cantry gitolite push instead of git push.  BUT... this defeats allgitolite access control, so if you're going to do this often, maybe youdon't need gitolite!
  如此看来需要在有gitolite的环境里执行gitolite push才能完成push的动作;
  虽然这样也可以对git库进行管理,但是中间却增添了诸多的麻烦步骤,实在是有违人道,因为这个弱智的错误导致我用了一晚上的时间才搞出来,希望大家引以为戒。。。


运维网声明 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-589748-1-1.html 上篇帖子: Ubuntu12.1 下 安装和使用 Git-Hiandroid工作室 下篇帖子: git 常用命令及一些小技巧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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