stone

gitlab的安装,备份与恢复
说明之前搭建的gitlab采用的是docker的方式搭建,但是相对来讲,docker在使用上没有直接安装的灵活,然...
扫描右侧二维码阅读全文
11
2016/05

gitlab的安装,备份与恢复

说明

之前搭建的gitlab采用的是docker的方式搭建,但是相对来讲,docker在使用上没有直接安装的灵活,然而使用docker的一个好处是当出现问题时,可以快速回到开始的状态,个人还是觉得直接安装比较好

安装

本次安装采用的是最新的8.10.2版本的,在使用gitlab的时候一定要的主要的版本的问题,就目前而言,备份文件不支持在不同版本的gitlab上进行恢复

安装采用一键安装的方式

安装gitlab的必备组件

sudo apt-get install openssh-server postfix ca-certificates

其中postfix的配置gitlab的stmp邮箱相关的组件

安装之后需要启动postfix服务,使用命令:

sudo service postfix start

如果安装的过程中出现源访问不到的问题,可以替换国内的源
在/etc/apt/sources.list文件中的前面添加下面这几句话:
下面是ubuntu16.04 的源

deb http://mirrors.163.com/ubuntu/ wily main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ wily-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ wily-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ wily-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ wily-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ wily-backports main restricted universe multiverse

参考来源:http://mirrors.163.com/.help/ubuntu.html

接下来是安装gitlab,添加gitlab的源

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce

在添加源之后就可以直接通过apt-get进行安装

如果需要安装指定的版本,可以使用下面的命令:

sudo apt-cache show gitlab-ce | grep Version #查看可以下载的版本号
sudo apt-get install gitlab-ce={gitlab-ce-version}

这样就可以下载指定版本的gitlab-ce

同样如果下载太慢的话,也可以替换gitlab-ce的源
参考资料: https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/

然后修改/etc/gitlab/gitalb.rb文件中的extern_url,指向服务器的域名或则ip,前面需要有http,否则会出错,ip不需要加端口

安装完后可能需要运行gitlab-ctl reconfigure

到这里gitlab基本安装完成
可以通过命令gitlab-ctl status查看组件状态

备份

在安装gitlab-ce之后,需要关注的下面的几个目录:

管理员配置目录:/etc/gitlab/        
gitlab的工作目录:/var/opt/gitlab/
gitlab的安装目录:/opt/gitlab
gitlab的日志目录:/var/log/gitlab/

配置文件为:/etc/gitlab/gitlab.rb

一般来说备份需要备份东西:

  1. gitlab的配置 /etc/gitlab 目录
  2. gitlab的代码和数据库资料,通过命令gitlab-rake gitlab:backup:create来产生,此处产生的全量备份

我们可以通过修改配置文件来指定备份的时间,周期,备份文件的保存目录,和保留时间等

默认情况下,产生的备份文件会保存在/var/opt/gitlab/backup目录下,backup目录输入git用户和git用户组,其他用户没有读取权限和打开权限,所以一定程度上是安全的

而是用docker搭建的gitlab,备份保存的目录为/srv/docker/gitlab/gitlab/backup下

恢复

通过备份的配置文件和数据的备份文件,一般来说是可以完全进行恢复的

先将配置文件复制到/etc/gitlab/目录下

然后使用gitlab-ctl reconfigure重新加载配置

然后将数据备份文件复制到/var/opt/gitlab/backup目录下,使用一下命令进行恢复:

gitlab-rake gitlab:backup:restore BACKUP={时间戳}

这里要吐槽一个,8.10.0版本有一个bug,在进行restore的时候回出现问题,无法进行恢复,这个bug在较新的版本中已经被修复了
一般来说不通的版本gitlab产生的备份文件不能通用,否者会报错
这里有个小方法:
先将备份文件.tar进行解压: tar -xvf _gitlab_backup.tar
然后修改里面backup_information.yml文件中的版本号
然后在将其打包: tar -cvf _gitlab_backup.tar ./
这样应该就能跨版本进行转移

常用命令

#查看gitlab版本信息
gitlab-rake gitlab:env:info

#查看组件状态
gitlab-ctl status

#停止组件
gitlab-ctl stop

#重新加载配置
gitlab-ctl reconfigure

#进行备份
gitlab-rake gitlab:backup:create

#进行恢复
gitlab-rake gitlab:backup:restore BACKUP={Timestamp}

#删除相关的缓存信息
gitlab-rake cache:clear
Last modification:September 7th, 2018 at 08:24 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment