Gitlab的安装备份与迁移

安装

  1. Install and configure the necessary dependencies

 1. yum install curl openssh-server openssh-clients postfix cronie
 2. service postfix start
 3. chkconfig postfix on
 4. lokkit -s http -s ssh
  1. Add the GitLab package server and install the package

    官方说明:

curl -sS
https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh
| sudo bash sudo yum install gitlab-ce

或者手动直接下载rpm包并安装:

curl -LJO
https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/6/gitlab-ce-XXX.rpm/download
rpm -i gitlab-ce-XXX.rpm

因为国内使用官方镜像比较慢,此处推荐使用清华大学镜像:

https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/

新建 /etc/yum.repos.d/gitlab-ce.repo,内容为

[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

再执行

sudo yum makecache
sudo yum install gitlab-ce

yum list gitlab-ce 或者使用 yum list gitlab-ce --showduplicates 查看所有可用版本
yum install gitlab-ce-version 安装自己指定的版本
  1. Configure and start GitLab

gitlab-ctl reconfigure

部分配置

/etc/gitlab/gitlab.rb

external_url 'http://test.dev:8080' #url

gitlab_rails['backup_path'] = "/exp/path/backups" #备份目录

git_data_dir "/exp/path/git-data" #仓库等文件存放目录

Gitlab 创建备份

使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份:

gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1393513186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期.

Gitlab 修改备份文件默认目录

你也可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:

gitlab_rails['backup_path'] = '/mnt/backups'

/mnt/backups修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可.

Gitlab 自动备份

也可以通过crontab使用备份命令实现自动备份:

sudo su -
crontab -e

加入以下, 实现每天凌晨2点进行一次自动备份:

0 2 * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

Gitlab 恢复

同样, Gitlab的从备份恢复也非常简单:

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

# 从1393513186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1393513186

# 启动Gitlab
sudo gitlab-ctl start

Gitlab迁移

仅本机仓库更改

见官方文档
https://docs.gitlab.com/ce/administration/operations/moving_repositories.html

不同服务器迁移

迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话). 但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份.

迁移注意事项

1.尽量同版本迁移

  1. 需要备份以下文件,否则可能会出现500错误(日志中表现为:OpenSSL::Cipher::CipherError (bad decrypt))详见:issues/17873 issues/1147 issues/13272
/etc/gitlab/gitlab-secrets.json
/var/opt/gitlab/gitlab-rails/etc/secrets.yml
/var/opt/gitlab/gitlab-rails/etc/secret

其他

最新版本的Gitlab已经修复了HTTPS设备的BUG, 现在使用官方HTTPS配置即可轻松启用HTTPS.

添加新评论