• git

Blog Archives

CentOS6.5 安装gitlab以及gitolite迁移gitlab

gitlab 的安装使用以及数据结构

安装

环境:

  • CentOS6.5
  • 基于 nignx + unicorn 搭建的应用环境, 如果想要换成passenger,可以参考网上的文档
  • ruby环境是基于rbenv搭建的

1: install vim

2: install git > 1.7.10

  • install git

reference: http://tecadmin.net/how-to-upgrade-git-version-1-7-10-on-centos-6/#

  • git config

3: install dependent rpm

  • first: replace yum repo

  • second: install

4: install rbenv && Ruby

  • add users: git

  • use rbenv-installer install rbenv

  • install Ruby

  • install bundler

5: install gitlab

  • install gitlab shell

  • install mysql, redis, nginx

refer: http://blog.58share.com/?p=291

  • install gitlab

  • install gem

  • start server

  • check env

  • 编译静态文件配置nginx配置

  • 绑定host

  • 部署成功

  • 安装文档refer:

http://www.digitalsanctuary.com/tech-blog/general/installing-gitlab-on-redhat-enterprise-5-rhel-5.html

https://gitlab.com/gitlab-org/gitlab-ce/blob/6-6-stable/doc/install/installation.md

将gitolite迁移到gitlab步骤

1. 初始化mysql 配置

初始化后:即可以登陆超级管理员账户:

2. 将现有的项目导入到gitlab中

3. 获取root的api密钥token 并写如客户端配置并执行api相关操作

  • 创建用户并塞入对应的 ssh-key, 新创建的用户无创建分组的权限。
  • 获取已经创建的 分组, 并根据分组,将用户写入不同的分组中
  • 将admin 管理员加入所有的分组中, 手动将对应的用户设置为管理员,并允许创建分组
  • 有邮箱的用户操作,涉及到线上数据库的更新,线上测试机器的拉取,手动创建虚拟用户并添加对应的权限
  • 合并人员需要设置为master 针对该项目
  • 管理员账户,并修改他们对应的权限控制以及创建的项目数

4. 写脚本将所有通过api创建的用户的确认状态修改为已确认状态,并在项目下执行操作

$ vim lib/task/gitlab/user.rake

执行操作

其他的相关配置

  • 配置smtp 邮件服务

$ vim config/environments/production.rb

  • 配置ldap

$ vim config/gitlab.yml

NOTES: 迁移项目遇到的坑

1. 通过接口获取用户数据,默认只能获取20条, 可以分页,每页最多100条数据

2. 通过接口获取项目,默认只能获取20条

3. 如果是迁移项目,若以前的git项目是有多层级接口,需要修正为一层,比如 java/abc/aaa.git => java/abc_aaa.git, 因为gitlab是不支持多层级结构的

4. 项目创建中有些带有关键字的项目是不能创建成功的,比如 java/admin.git , ruby/services.git

5. gitlab clone项目无论是ssh, http 都会调用http请求,通过http请求判断用户的权限等操作。而我们的http请求是做了ldap访问权限设置的,因此需要对将本机(gitlab服务器)的IP加入ldap的白名单中

相关命令参考

  • 将现有的项目导入到gitlab中去

* 添加所有的用户到所有的分组中(admin的角色是owner)

* 添加所有的用户到所有的项目中(admin的角色是master)

* 添加一个特殊的用户到所有的分组中(角色为developer)

* 添加一个特殊的用户到所有的项目中(角色为developer)

## gitlab 其他相关参考 #### API相关 如果gitlab中有你的公钥,你就可以通过authentication_token来调用api

gitlab api gem

refere: https://github.com/NARKOZ/gitlab

问题: 这个gem包的接口是v2的,但是gitlab 现在稳定版的是 V3了,但是部分功能能用,有些接口中描述的功能是需要自己去写的

other helps

refer:http://mrk1869.com/blog/gitlab_installation/

git升级解决方案

How to Upgrade Git version >= 1.7.10 on CentOS 6

refer:http://tecadmin.net/how-to-upgrade-git-version-1-7-10-on-centos-6/#

git clone项目时报无环境变量

refer:http://thoughtpointers.net/2013/04/18/using-rbenv-with-gitlab-shell-on-os-x/

git push error

解决: 修改 gitlab-shell/config/gitlab.yml 中的redis-cli 的路径为正确的路径

解决: 是由于缺少内存导致的,如果用的是vps的话,用free -m 看看是否是内存太少,或者是没有使用swap内存,如果没有swap,需要加swap,一般是内存的1倍或者1.5倍

Reference

http://mrk1869.com/blog/gitlab_installation/ http://www.digitalsanctuary.com/tech-blog/general/installing-gitlab-on-redhat-enterprise-5-rhel-5.html https://gitlab.com/gitlab-org/gitlab-ce/blob/6-6-stable/doc/install/installation.md http://git.58share.com/help/api/README

this is a project for gitlab api

https://github.com/NARKOZ/gitlab

https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/groups.md

gitolite搭建git服务器

gitolite搭建git服务器

客户端

  1. 生成密钥对

  1. 上传公钥

Server端

  1. 切换到git用户
  2. 安装gitolite

客户端

进入 ~/.ssh/ 目录中

创建文件

然后就可以用域名的形式

git clone git:gitolite-admin 将管理员配置地址clone下来

通过gitolite-admin管理git仓库

 

参考:https://github.com/sitaramc/gitolite

does not map back to the address

git push origin master时会出来这样的提示
does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!
Address 192.168.100.100 maps to localhost, but this does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!

是因为DNS服务器把 192.168.x.x 的地址都反向解析成 localhost,而DNS服务器是不能由我们控制的,不能对其进行修改。
解决的办法就是,编辑 客户端 /etc/hosts 文件

ok!

gitosis搭建git服务器

git版本控制器的安装以及git服务器的搭建

环境介绍

  • linux系统:CentOS-6.3

1.git的安装和配置

(1)使用yum源安装git

(2)创建全局git配置文件

(更多…)