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

[经验分享] redhat/centos 6.3 搭建git/gitosis/gitweb详细过程(1)

[复制链接]

尚未签到

发表于 2016-5-13 09:30:08 | 显示全部楼层 |阅读模式
近来,需要向开源项目提交代码,终于意识到了git的重要性,原因就不用多说了(人家都采用git来进行代码版本管理)。
于是,花了上午的时间自己搭建了一个git服务器,并把搭建的详细步骤和注意事项与大家分享。


主机环境: RedHat 6.3, 并配置了本地iso源和centos 6.3的源(RedHat使用CentOS源的方法,参见博文《Redhat使用CentOS的yum源进行升级或软件安装》)


1. git的安装和配置
(1)使用yum源安装git

  • yum install git

(2)创建git用户并设置密码

  • #useradd--home/home/gitgit
  • #passwd git
  • //注意这里要设置一个密码,建议不要不设密码,网上很多资料都不设密码

(3)创建一个git仓库,验证git是否可用

  • 在使用git之前,要设置git的两个全局变量,设置方式为:

    • # git config --global user.name "dylan"
    • # git config --global user.email "ustc.dylan@email.com"

  • 设置git仓库目录的权限

    • # su - git              //切换到git用户
    • $ chmod -R 755 /home/git       //修改目录的权限

  • 创建并初始化一个repository

    • $ mkdir /home/git/repo  //假设要创建的repository放在/home/git/repo目录下
    • $ cd /home/git/repo
    • $ mkdir test_repo
    • $ cd test_repo
    • $ git init --bare

  • 测试新创建的repository是否可用

    • su - test (test为另外一个user或者exit,使用root用户)
    • $ cd /home/test
    • $ mkdir repos
    • $ cd repos
    • $ git clone /home/git/repo/test_repo

    如果显示"
    Initialized empty Git repository in /home/git/repo/test_repo/.git/
    ",则说明成功的clone了一个local repository。之后就可以在此repository下进行开发了,比如,添加一个readme.txt文件。

    • $ cd test_repo
    • $ vim readme.txt (创建一个文件)
    • $ git add . (注意后面有一个[.])
    • $ git commit -a
    • $ git push origin master


注意:如果此时报错,最大的原因是test_repo的refs和objects目录的权限不够,执行如下操作即可(git server端的repository下的这两个目录)。

  • $ chmod -R 777 refs/
  • $ chmod -R 777 objects/



2. gitosis的安装
(1)python-setuptools的安装(因为gitosis的安装脚本是用python写的)

  • #yum install python-setuptools

(2)gitosis的安装

  • #git clone git://github.com/res0nat0r/gitosis.git//下载gitosis到你想存放的目录下
  • #cd gitosis
  • #python setup.py install  //如果没有报错,则说明安装成功

(3)创建是用这个git server的用户的公钥因为gitosis的访问是通过ssh访问的,所以我们还需要创建一个ssh的访问公钥。找另外一台机器(如果条件允许)作为git server的客户端机器创建公钥,然后传到git服务器上。(如果为了简便,也可在git服务器上创建公钥,使用git用户或者其他用户都行。为了方便,这里采用git服务器,并且使用git用户。


  • # su - git
  • $ ssh-keygen -t rsa

公钥生成了,默认放在/home/git/.ssh/id_rsa.pub下,如果生成公钥时设置了密码,注意记住密码,为了简单,我这里没有设置密码。


(4)配置gitosis
gitosis对git的各种管理通过gitosis-admin.git这个项目来完成,gitosis-admin.git项目本身又被置于git下管理,所以需要先在client端clone gitosis-admin.git, 根据需求修改后,将修改提交到git server即可生效。
此处的含义就是:你想在哪对gitosis进行配置,就需要在哪clone到gitosis-admin.git.

  • 假设在于gitosis不同的另外一台机器上,使用git用户将gitosis-admin.git clone到本地。

    • git clone git@192.168.x.xx:/home/git/repositories/gitosis-admin.git

  • 修改gitosis配置文件gitosis.conf

    • $ vim gitosis.conf
    • //会看到如下内容

    • [gitosis]

    • [group gitosis-admin]
    • writable = gitosis-admin
    • members = git@compute-29-01.local

    gitosis.conf 文件是用来设置用户、仓库和权限的控制文件(对于gitosis.conf文件的详细含义,以及keydir目录下公钥的作用,将会另写文档说明,在此不再详述),只需知道gitosis仓库是可写的,支持的用户有git
(5)新添加repository

修改gitosis-admin的配置文件gitosis.conf,新添加一个repository,例如:


  • [gitosis]
  • [group gitosis-admin]
  • writable = gitosis-admin
  • members = git@compute-29-01.local
  • [group test_repo]            //新添加的仓库名称
  • writable = test_repo           //此仓库的读写权限,此处为可写
  • members = user1@host1 user2@host2    //可以访问此仓库的用户名@主机名


假设当user1,来访问这个test_repo仓库时,需要输入如下命令:


  • git clone user1@git_server_ip:/home/git/repo/test_repo.git

此时会要求输入user1的密码,此密码就是创建user1的公钥时输入的密码。那么gitosis又是怎么来确定user1的身份的呢? 这就要求必须事先将user1产生的公钥传给管理员,即对gitosis-admin有权限操作的管理人员,然后由他将公钥拷贝到keydir目录下,然后,执行git add,git push即可。

到此, gitosis配置完成了,由于本篇文章已经很长了,所以将gitweb的安装配置单独整理成一篇文章,具体参见《redhat/centos 6.3 搭建git/gitosis/gitweb详细过程(1)》

运维网声明 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-216344-1-1.html 上篇帖子: RHEL(redhat 5.x,6.x)和CentOS上Gitlab安装全过程 下篇帖子: GIT简介以及在Centos上的安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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