#下载gitlab
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-10.1.3-ce.0.el6.x86_64.rpm
sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
sudo yum install postfix
sudo service postfix start
sudo chkconfig postfix on
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
yum install gitlab-ce-10.1.3-ce.0.el6.x86_64.rpm
#修改配置,添加下面内容
vi /etc/gitlab/gitlab.rb
#域名修改
external_url 'http://newcode.topv.com'
#时区修改
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#修改ssh默认端口
gitlab_rails['gitlab_shell_ssh_port'] = 22222
#存储路径修改
git_data_dir "/data/gitlab"
#备份路径设置
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/data/gitlab/backups"

#备份周期设置604800=7天
gitlab_rails['backup_keep_time'] = 604800
#修改访问端口
nginx['listen_port'] = 9394

#添加白名单

gitlab_rails['rack_attack_git_basic_auth'] = {
'enabled' => true,
'ip_whitelist' => ["127.0.0.1","Gitlab部署的IP地址"],
}

 

#配置启动
gitlab-ctl reconfigure
gitlab-ctl status
#会生成/data/gitlab/repositories/目录
##############################################################################
#汉化
yum install git
wget https://gitlab.com/xhang/gitlab/repository/10-1-stable/archive.zip
wget https://gitlab.com/xhang/gitlab/repository/10-1-stable-zh/archive.zip
#创建汉化git目录
mkdir gitlab-zh
cd gitlab-zh
git init
#解压第一个git包并创建分支
unzip ../gitlab-10-1-stable-e6142bc7e82cc2c6c25583f8c05cd36905ded87c.zip
mv gitlab-10-1-stable-e6142bc7e82cc2c6c25583f8c05cd36905ded87c/* .
rm -rf gitlab-10-1-stable-e6142bc7e82cc2c6c25583f8c05cd36905ded87c
git add *
git commit -m "++"
git branch  gitlab-10-1-stable
#解压第二个git包并创建分支
unzip ../gitlab-10-1-stable-zh-1219a5ae0f40121fe7243d5e74a87bd17e1adc76.zip
\cp -rp gitlab-10-1-stable-zh-1219a5ae0f40121fe7243d5e74a87bd17e1adc76/* .
rm -rf gitlab-10-1-stable-zh-1219a5ae0f40121fe7243d5e74a87bd17e1adc76
git add *
git commit -m "++"
git branch  gitlab-10-1-zh-stable
#生成补丁包
git diff gitlab-10-1-stable gitlab-10-1-zh-stable > ../10-1-stable-zh.diff
#开始汉化
patch -d /opt/gitlab/embedded/service/gitlab-rails -pl < ../10-1-stable-zh.diff
#配置汉化并重启
gitlab-ctl reconfigure
gitlab-ctl restart
##############################################################################
#迁移gitlab
#复制其他服务器上的repositories目录下所有文件到/data/gitlab/repositories/
#修改权限
chown -R git:root /data/gitlab/repositories/*
#导入
cd /var/opt/gitlab
gitlab-rake gitlab:import:repos
#导入项目后,gitlab重启访问会出现502,需要执行gitlab-rake gitlab:import:repos
##############################################################################
#任务计划备份
#备份配置文件
sh -c 'umask 0077; tar -cf $(date "+etc-gitlab-%s.tar") -C /etc/gitlab'
#备份数据文件
sudo gitlab-rake gitlab:backup:create
#加入到任务计划CRON=1没有日志,改为>/tmp/gitlab_backup.log保存日志
0 2 * * 0 git /opt/gitlab/bin/gitlab-rake gitlab:backup:create > /data/gitlab/backups/rake.log
0 2 * * 0 git cd /data/gitlab/backups;tar -cf $(date "+etc-gitlab-%s.tar") -C /etc/gitlab
##############################################################################
#恢复
sudo mv /etc/gitlab /etc/gitlab.$(date +%s)
# 将下面配置备份文件的时间戳改为你所备份的文件的时间戳
sudo tar -xf etc-gitlab-1399948539.tar -C /
# 将数据备份文件拷贝至备份目录
sudo cp 1393513186_gitlab_backup.tar /data/gitlab/backups
# 停止连接数据库的进程
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
# 恢复1393513186这个备份文件,将覆盖GitLab数据库!
sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186
# 启动 GitLab
sudo gitlab-ctl start
# 检查 GitLab
sudo gitlab-rake gitlab:check SANITIZE=true
##############################################################################
#故障排查
#502
#重启服务后502
#执行
gitlab-rake gitlab:import:repos
#访问页面过程中502,执行下面查看log
gitlab-ctl tail
#修复丢失文件
#https://www.ipreferjim.com/2012/02/git-push-fatal-unable-to-read-sha1/
#https://lists.nongnu.org/archive/html/dolibarr-dev/2012-10/txtyMlY1ONYxU.txt
    #备份过程中出现error: Could not read,上传文件
    #进入该git的目录执行
    git fsck --full
    git ls-tree cd5aa220b358f2839f083b0fea5684483875aff2
    #所有版本
    git rev-list HEAD
    #查看日志历史
    git log --raw --all --full-history
    #查看文件内容
    git cat-file -p 196035e8754a0c3d3966f0bc9619f66f5c1b94ba
    #上传丢失的文件,sha-1码要一致
    git hash-object -w 196035e8754a0c3d3966f0bc9619f66f5c1b94ba

#有些损坏的并且无法找回的可以删除掉

gitlab 搭建与迁移的更多相关文章

  1. Gitlab 备份还原/迁移

    Gitlab 备份还原 备份数据:通过命令进行备份操作 gitlab-rake gitlab:backup:create ... [DISABLED] Creating backup archive: ...

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

    CentOS6.5 安装gitlab以及gitolite迁移gitlab gitlab 的安装使用以及数据结构 安装 环境: CentOS6.5 基于 nignx + unicorn 搭建的应用环境, ...

  3. 项目案例之GitLab的数据迁移

    项目案例之GitLab的数据迁移 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方 ...

  4. 用GitLab搭建自己的私有GitHub

    相信很多技术人员都知道有个github造福开发人员的git(分布式版本管理工具)代码管理社区,可以说现在git是开发人员的必备技能之一 本周有个朋友公司需要一个类似github的代码仓库管理系统,本人 ...

  5. Jenkins+Gitlab搭建持续集成(CI)环境

    利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...

  6. GitLab搭建详细过程

    一.前提 系统:Centos 6.5 软件版本:gitlab-7.8.4 Selinux:关闭 防火墙规则:先清空(搭建好了后续自己添加相关放行规则) 二.yum源配置和相关依赖包 1.添加epel源 ...

  7. Gitlab备份与恢复、迁移与升级

    0.Gitlab安装 1.安装和配置必要的依赖关系 在CentOS7,下面的命令将在系统防火墙打开HTTP和SSH访问.   yum install curl openssh-server postf ...

  8. Gitlab备份、迁移、恢复和升级

    Gitlab备份.迁移.恢复和升级 自建的Gitlab服务器常常会因为使用时间的增长,其空间容量等硬件需求都需要升级,或者迁移至更高配置的服务器上.备份.迁移.恢复.升级过程如下 1.gitlab备份 ...

  9. Ansible+Jenkins+Gitlab搭建及配置

    Ansible+Jenkins+Gitlab搭建及配置,已经生产环境使用,运行良好. 主机组文件里面好多ip敏感信息就不写了

随机推荐

  1. Fragment Touch事件泄露

    当Fragment的栈里面有几个fragment的时候,这个时候如果是几个fragment状态是hide,当你触摸当前fragment的时候,下层的fragment的事件被触发,这是由于Touch事件 ...

  2. 13 Django组件-cookie与session

    会话跟踪技术 1 什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10 ...

  3. Spring核心技术(十五)——BeanFactory

    BeanFactory是Spring IoC功能的潜在基础,但是现在BeanFactory一般仅仅用于直接集成第三方的框架,对于大多数的Spring用户来说,BeanFactory已经算是一个历史了. ...

  4. Android 如何在xmL 里面动态设置padding

    如题,Android 如何在xmL 里面动态设置padding 有时候,你的布局加载完成之后,你findViewByid 找到控件,设置padding 会导致白条,布局闪动,那怎么办呢? 你是不是就想 ...

  5. Python数据类型一

    一.整型 在Python内部对整数的处理分为普通整数和长整数,普通整数长度为机器位长,通常都是32位,超过这个范围的整数就自动当长整数处理,而长整数的范围几乎完全没限制Python可以处理任意大小的整 ...

  6. web.py上传文件并解压

    有个需求是从php端上传zip文件到python端并且解压到指定目录,以下是解决方法 1.python端,使用的web.py def POST(self): post_data = web.input ...

  7. 《Cracking the Coding Interview》——第8章:面向对象设计——题目8

    2014-04-23 23:49 题目:有个棋牌游戏叫Othello,也叫Reversi.请看游戏规则.中文应该叫黑白棋吧,不常玩儿就是了. 解法:既然这题的规则很清楚,也很清楚,我就写了一个命令行的 ...

  8. 《Cracking the Coding Interview》——第2章:链表——题目3

    2014-03-18 02:25 题目:给定一个单链表中间的节点,删掉那个节点. 解法:把后面节点的数据域拷到当前节点来,然后删除后面那个节点.当前节点不是尾巴,所以后面不为空. 代码: // 2.2 ...

  9. javascript将分,秒,毫秒转换为xx天xx小时xx秒(任何语言通用,最通俗易懂)

    // 传入参数为总分钟数,如果为秒数,毫秒数,需要对 // 此处得到总秒数 注释部分的代码调整下. function toDateDMS(minutes){ // 将分钟转换为 天,时,分,秒 if( ...

  10. 去除文件夹中的.svn

    一.在Dos窗口中运行如下命令 for/r <你项目的路径> %i in (.svn) do rd /s /q %i 二.将“Delete SVN Folders”操作添加到右击菜单中 建 ...