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

[经验分享] Ubuntu下 git 服务器的搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-13 07:47:56 | 显示全部楼层 |阅读模式
  Ubuntu下  git  服务器的搭建。
  前几天老师分配了一个任务 就是配置git服务器,来管理项目,搞弄了好几天,在网上搜教程   搜案例的  但是写的都很笼统,有的写的很好  但是按照他们说的做又会出现各种各样的问题。今天我抽空把我配置git服务器的详细过程记录下来,希望能帮助到大家。
  搭建git服务器的4个步骤
  1   配置服务器前的准备工作
  首先ubuntu系统要联网 安装了git,openssh-server和openssh-client软件,并检测是否开启。
  rpm -qa | grep -i git (查看是否安装git)
  sudo apt-get install git
  sudo apt-get install openssh-server
  sudo apt-get install openssh-client
  2   添加git 用户
  新加用户git,该用户将作为所有代码仓库和用户权限的管理者:
  geiao@ubuntu:~$ sudo useradd -m git
  geiao@ubuntu:~$ sudo passwd git
  建立一个git仓库的存储点,并且设置权限使除了git以外的用户对此目录无任何访问权限。
  geiao@ubuntu:~$ sudo mkdir /home/pro_j
  (建立个目录,作为存储点。)
  geiao@ubuntu:~$ sudo chown git:git /home/pro_j
  (把pro_j的权限给 git)
  geiao@ubuntu:~$ sudo chmod 755 /home/pro_j (将文件pro_j设置为 rwxr_xr_x 除了git以外的用户对此目录无任何访问权限)
  3   安装配置gitosis
  初始化服务器的git用户 可以用cat ~/.gitconfig 查看
  geiao@ubuntu:~$ git config --global user.name "your name"
  geiao@ubuntu:~$ git config --global user.email your email
  geiao@ubuntu:~$ cat ~/.gitconfig
  [user] name = zhang mingjie
  email = Jghost@yeah.net
  安装一下python的setuptool,也是为gitosis做准备:
  geiao@ubuntu:~$ sudo apt-get install python-setuptools
  获得gitosis包:
  geiao@ubuntu:~$ mkdir osis
  geiao@ubuntu:~$ cd osis
  geiao@ubuntu:~/osis$ git clone git://eagain.net/gitosis.git
  注意:执行上步骤会出错
  Cloning into gitosis...
eagain.net[0: 208.78.102.120]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)

  可使用:git clone https://github.com/res0nat0r/gitosis.git代替
  geiao@ubuntu:~/osis$ cd gitosis
  geiao@ubuntu:~/osis/gitosis$ sudo python setup.py install 默认状态下,gitosis会将git仓库放在git用户home下的repositories中,所以要做个链接: geiao@ubuntu:~/osis/gitosis$ su git
  $ ln -s /home/pro_j /home/git/repositories
  $ exit
  成为管理员:无论是不是本机都可以通过生成ssh公钥的方法成为管理员
  geiao@ubuntu:~$ ssh-keygen -t rsa 生成的密钥可以通过在~/.ssh 文件中找到。
  在服务器上建管理员:
  geiao@ubuntu:~/osis/gitosis$ sudo chmod a+r ~/.ssh/id_rsa.pub
  [sudo] password for geiao:
  让gitosis运行起来:
  geiao@ubuntu:~/osis/gitosis$ sudo -H -u git gitosis-init< ~/.ssh/id_rsa.pub
  Initialized empty Git repository in /home/pro_j/gitosis-admin.git/
  Reinitialized existing Git repository in /home/pro_j/gitosis-admin.git/
  如果在另外的一台机子上建管理员,必须把那台机子的公钥(改名)拷到服务器上 然后修改上面划线操作的地址就行了。
  Gitosis 通过一个git仓库管理配置文件,仓库就放在/home/pro_j/gitosis-admin.git。因此要为一个文件加上可执行权限:
  geiao@ubuntu:/home/git$ sudo passwd root
  geiao@ubuntu:/home/git$ su
  root@ubuntu:/home/git# cd repositories
  root@ubuntu:/home/git/repositories# cd gitosis-admin.git
  root@ubuntu:/home/git/repositories/gitosis-admin.git# sudo chmod 755 /home/pro_j/gitosis-admin.git/hooks/post-update root@ubuntu:/home/git/repositories/gitosis-admin.git# exit
  4   管理gitosis的配置文件
  gitosis本身的配置也是通过git来实现的。在你自己的开发机里,把gitosis-admin.git这个仓库clone下来,就可以以管理员的身份修改配置了。
  geiao@ubuntu:~$ cd osis
  geiao@ubuntu:~/osis$ mkdir pro
  geiao@ubuntu:~/osis$ cd pro
  geiao@ubuntu:~/osis/pro$ git clone git@服务器ip:gitosis-admin.git
  geiao@ubuntu:~/osis/pro$ cd gitosis-admin
  geiao@ubuntu:~/osis/pro/gitosis-admin$ ls
  gitosis.conf keydir
  gitosis.conf文件和keydir文件夹
  gitosi.conf文件主要的作用是管理员可以编写其他人的权限,可以编写对gitosis-admin的成员,也可以编写对仓库的权限 :writable和 readonly . 这里设置权限 可以建立group设置。
  keydir 文件夹是存放其他人公钥的地方。而且必须注意 谁的公钥谁的名字的要求来存放。
  geiao@ubuntu:~/osis/pro/gitosis-admin/keydir$ ls geiao@ubuntu.pub jghost.pub 否则在会出现:
  ERROR:gitosis.serve.main:Repository read access denied
  配置好后一定要做的操作事提交gitosis-admin的改动,并commit 然后 git push 一下; 而且你不需要在服务器上建好一个空仓库,再导入项目。 Gitosis会在你建好项目推送到服务器上时自动创建。 然后就可以建立个项目 如proj.git(这点比较重要)
  geiao@ubuntu:~/osis/pro$ mkdir proj
  geiao@ubuntu:~/osis/pro$ cd proj
  geiao@ubuntu:~/osis/pro/proj$ git init
  Initialized empty Git repository in /home/geiao/osis/pro/proj/.git/
  geiao@ubuntu:~/osis/pro/proj$ touch README
  geiao@ubuntu:~/osis/pro/proj$ git add README
  geiao@ubuntu:~/osis/pro/proj$ git commit -a -m "add readme"
  geiao@ubuntu:~/osis/pro/proj$ git remote add origin git@10.10.4.229:proj.git
  geiao@ubuntu:~/osis/pro/proj$ git push origin master
  到此, 在ubuntu上建立git服务器基本上完成。
  至于gitweb   感兴趣的 可以参考这篇文章。
  http://www.cnblogs.com/xl19862005/archive/2011/06/28/2092464.html
  

  谢谢大家。

运维网声明 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-150306-1-1.html 上篇帖子: ubuntu 下git安装及使用笔记 下篇帖子: ubuntu git http proxy配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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