灾备还原之gitlab
灾备还原之gitlab
备份情景:服务器A架设了gitlab
,定期通过duplicity
发送加密备份给B服务器,现在由于某种情况生产机器A完全无法访问(主机商跑路?硬盘冒烟?服务器BOOM了?),本地存有还原备份所需要的所有信息(例如:B机器访问密钥,备份加密密钥)
PS: 总体来说,gitlab的还原还是很简单的,因为gitlab的还原还是很傻瓜式
的.
文档汇总:备份所使用的工具及gitlab帮助
- duplicity官网
- duplicity某大神写的备份脚本
- gitlab omnibus安装指南
- gitlab 备份还原指南
- duplicity-0.7.07(stable)安装日志
- iptables防火墙设置 Arch WiKi
- gitlab不同版本选择下载官方地址
本地存有的信息(关于A,及当时的备份记录)
- A机器的系统:Ubuntu14.04_x86_64
- duplicity版本 : 本地没有记录,不详...
- gitlab的版本: 8.6.5 omnibus安装(没有记录...但是万幸的是它的备份文件中含有当时的版本信息)
- 备份B的访问信息(ssh端口,密钥...),备份机B验证访问正常.
- duplicity的加密公私钥,密码
- duplicity的备份脚本配置.
- gitlab生成的备份: 类似:1460181615_gitlab_backup.tar之样的文件.
假设我们在C机器上进行还原,C的系统为全新CentOS6.7_x86_64_minimal
,虽然说A是Ubuntu但是gitlab的还原是可以跨系统的.
0.0 为C设置基本的安全设置,上传本地备份信息.
C为全新的机器,而它访问的方式默认为明文密码,且ssh端口也为默认的22,这很容易遭到各种扫描,我们将它改成端口非默认,密钥访问,且不允许root直接登录,并设置iptalbes防火墙,我一般参照Arch WiKi
0.1 安装duplicity
我们使用最新的stable 0.7.07
版本,关于这个版本的安装我已经写了一篇安装日志,这里不再细说,略.duplicity-0.7.07(stable)安装日志
0.2 导入GPG密钥
备份工具使用的是duplicity,我使用了它可以用GPG加密的特性,当时已经导出加密密钥为ASCII文档保存到本地,使用gpg --import you_key_files
来导入公私钥.
0.3 安装gitlab(版本为8.6.5),使用omnibus安装.
gitlab使用omnibus安装比较简单,不懂的多看看官方文档就行了gitlab还原官方文档
OK,如果你对gitlab还原有所了解的话,官方文档特别指出了还原所要使用的版本号与你备份时所使用的必须相同.
You can only restore a backup to exactly the same version of GitLab that you created it on, for example 7.2.1.
所以这里最要注意的就是版本要对上,还有还原机的内存最好2G以上,gitlab安装完成后很吃内存.
恩,如果你想要还原gitlab的话,建议你还是先认真的看看gitlab的官方文档再说. 到官网的这个页面选择好要安装的版本gitlab文档,它会生成一个安装指令,跟着它做就没问题,建议直接在搜索里查找,找到后点击进去会生成该版本对应的安装指令,这是针对我的系统和gitlab版本生成的指令:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce-8.6.5-ce.0.el6.x86_64
运行完以上指令后,gitlab不是算是安装完成了,最后使用以下指令来配置gitlab,这个指令要花费5分钟以上的时间(你可以喝口水并祈祷它不会报错)
gitlab-ctl reconfigure
OK,没报错的话找到官方的还原文档-->gitlab_backup_restore
0.4 gitlab还原
恢复的前提:
- 版本要相同,这个已经说了.
- 安装完成后要运行
gitlab-ctl reconfigure
一次,这次也满足了. - gitlab当前要在运行的状态下,如果没有,使用
gitlab-ctl start
来启动它.
首先还原是建立在备份的情况下的,我们使用duplicity还原备份到C.
bash duplicity-backup.sh -c gitlab_backup.conf -t "20160409" --restore /root/data/gitlab
恢复的日期为4月9号,将备份存到/root/data/gitlab
下,接下来按照gitlab官方文档的来:
1.将备份文件复制到/var/opt/gitlab/backups/
目录
cp /root/data/gitlab/1460181615_gitlab_backup.tar /var/opt/gitlab/backups/
注意要把你的备份文件的权限设置成git:git
chown git:git /var/opt/gitlab/backups/1460181615_gitlab_backup.tar
2.将连接到数据库的gitlab组件停止,其它组件状态不要改变.
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
3.设置你要还原的文件,下面的1460181615
是你的备份文件的前面的数字,例如我 1460181615_gitlab_backup.tar
sudo gitlab-rake gitlab:backup:restore BACKUP=1460181615
没有报错的话,中间会叫你确认两次,然后是一大堆的 ALERT TABLE DEL TABLE
4.最后一步重启gitlab,重启会花费15秒以上的时间,在这之前访问是会报502的.
gitlab-ctl restart
OK,访问后完美恢复到20160409的状态,还原成功!
灾备还原之gitlab的更多相关文章
- 基于Ceph快照的异地灾备设计
作者:吴香伟 发表于 2017/02/06 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 喜欢请点击右边打赏,谢谢支持! 引子 技术改变生活. 越来越方便的手机 ...
- SQLServer 2014 本地机房HA+灾备机房DR解决方案
SQLServer 2014 主数据中心HA+灾备机房DR解决方案 SQLServer 2008 的时候使用 local WSFC+DR Mirror方式,对象是单数据库 两个单独的 WSFC 上使用 ...
- Kubernetes Master节点灾备恢复操作指南---升级版
本文档简述了Kubernetes主节点灾备恢复的相关步骤,供在发生k8s master崩溃时操作. 就算是在k8s里部署了etcd群集, 主节点控制组件的高可用节点,灾备恢复也是必须要实现的操作,才能 ...
- DataGuard VS Beedup & GoldenGate灾备方案参数对比
世上本无完美产品,只有合适的才是最好的! 用户重视灾备数据站点的建设,毋庸置疑必备品.如果考虑带宽及事务完整性保证,存储灾备和操作系统级灾备局限性显而易见. 商用价值一般用于解决数据库自带辅助功能的短 ...
- 理解 OpenStack 高可用(HA)(1):OpenStack 高可用和灾备方案 [OpenStack HA and DR]
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- 基于Cloudera Search设计数据灾备方案
当实际项目上线到生产环境中,难以避免一些意外情况,如数据丢失.服务器停机等.对于系统的搜索服务来说,当遇到停机的情况意味着在停机这段时间内,用户都不能通过搜索的相关功能进行访问数据,停机意味着将这一段 ...
- Centos服务器上NFS灾备环境及KVM的搭建及使用
1.概述 由于在单台服务器上搭建灾备环境需要KVM和NFS的支持,下面先列出KVM的搭建流程,再列出使用NFS实现单台服务器灾备的流程. A.搭建KVM环境 1>.主机环境准备 Linux Sy ...
- mysql灾备演练问题
前期写的mysql热备份脚本恢复,还没有正式用到过,但是今天演练灾备恢复,但是遇到几个问题. 测试环境: 搭建mysql,安装xtrabackup vim /etc/yum.repos.d/Perco ...
- 云区域(region),可用区(AZ),跨区域数据复制(Cross-region replication)与灾备(Disaster Recovery)(部分1)
本文分两部分:部分1 和 部分2.部分1 介绍 AWS,部分2 介绍阿里云和OpenStack云. 1. AWS 1.1 AWS 地理组件概况 AWS 提供三种地理性组件: Regions:区域,即A ...
随机推荐
- 基于 Ubuntu 搭建 FTP 文件服务
搭建 FTP 文件服务 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 apt-get 安装 vsftpd: sudo apt-get install vsft ...
- PAT 1134 Vertex Cover
A vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at le ...
- Spring Tool Suite 安装
第一步:到http://spring.io/tools/sts/all/上下载对应版本.(此处以博主Windows64位系统为例) 第二步: 进入eclipse,依次点击help-->Insta ...
- Java基础学习总结(82)——Java泛型实例教程
1.为什么需要泛型 泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立足于代码介绍.总结了关于泛型的知识.希望能给你带来一些帮助. 先看下面的代码: List list = ...
- TensorFlow Ops
TensorFlow Ops 1. Fun with TensorBoard In TensorFlow, you collectively call constants, variables, op ...
- Ext.data.JsonStore的使用
最近在维护一个Ext.js写的贷前服务系统,Ext.data.JsonStore相当于前台页面的一个数据仓库,负责保存后台传过来的Json数据,具体用法如下: var store12=new Ext. ...
- Tomcat配置文件server.xml(转)
前言 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的 ...
- C语言控制台窗体图形界面编程(总结)
本系列文章是笔者通过学习<C语言控制台窗体界面编程(修正版)>而写(关于此文档的很多其它信息请看本系列文章第一篇),旨在让大家更加清晰简洁easy地学习C语言控制台窗体界面的编程. 通过本 ...
- 通过scp批量推送文件到远程目录
[root@openfire1 script]# cat test.sh #!/bin/bash #通过scp推送文件到远程目录 for ip in `cat iplist` do ...
- 技术架构model