#下载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

#添加白名单

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

 

#配置启动
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. python正则表达式01--贪心算法和非贪心算法findall()

    import re st = 'asdfasxxixxdafqewxxlovexxsadawexxyouxxas' # . #点匹配除换行符外的任意字符 a0 = re.findall('xx.',s ...

  2. json loads/dumps

    json.dumps : dict转成str json.loads:str转成dict dict_ = {1: 2, 3: 4, "} print(type(dict_), dict_) # ...

  3. Git-改变历史

    悔棋 在日常的Git操作中,会经常出现这样的状况,输入git commit命令刚刚敲下回车键就后悔了:可能是提交说明中出现了错别字,或者有文件忘记提交,或者有的修改不应该提交,诸如此类. Git提供了 ...

  4. 《Cracking the Coding Interview》——第17章:普通题——题目9

    2014-04-28 23:52 题目:设计算法,找出一本书中某个单词的出现频率. 解法:数就行了. 代码: // 17.9 Given a book, find out the occurrence ...

  5. Linux/Unix中系统级IO

    Linux/unix I/O:将设备映射为文件的方式,允许Unix内核引出一个简单.低级的应用接口. Linux/unix IO的系统调用函数很简单,它只有5个函数:open(打开).close(关闭 ...

  6. 性能测试之siege

    一.siege介绍 Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数 ...

  7. FluentAPI深入

    1.  HasMaxLenght 设定字段得最大长度: static void Main(string[] args) { using (TestDbContext ctx = new TestDbC ...

  8. ipa和ironic-conductor交互

    IPA使用lookup和hearteat机制与Ironic Conductor进行交互,启动时agent给Conductor的vendor_passthru lookup endpoint(地址为/v ...

  9. heat模板

    Heat 目前支持两种格式的模板,一种是基于 JSON 格式的 CFN 模板:另外一种是基于 YAML 格式的 HOT 模板.CFN 模板主要是为了保持对 AWS 的兼容性.HOT 模板是 Heat ...

  10. nyoj 题目16 矩形嵌套

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...