gitlab - 备份和恢复

1,593 阅读1分钟

团队内网开发,需要去甲方开发,希望将整个gitlab迁移到甲方

下面是实验过程

创建实验环境

  1. 配置docker docker-compose
 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
sudo mkdir -p /etc/docker 
sudo tee /etc/docker/daemon.json <<-'EOF' 
{ 
"registry-mirrors": ["https://7clusxie.mirror.aliyuncs.com"] 
} 
EOF 
sudo systemctl daemon-reload 
sudo systemctl restart docker
  1. 安装 gitlab

注意:gitlab的版本一致 ,直接 docker save 保存 gitlab 到 目的地docker load

version: '3.5'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: gitlab
    restart: always
    hostname: '192.168.247.226'
    environment:
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://192.168.247.226:8929'
          gitlab_rails['gitlab_shell_ssh_port'] = 2224
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
    ports:
        - '8929:8929'
        - '2224:22'
        - '5005:5005'
    volumes:
        - '$GITLAB_HOME/config:/etc/gitlab'
        - '$GITLAB_HOME/logs:/var/log/gitlab'
        - '$GITLAB_HOME/data:/var/opt/gitlab'

docker-compose up -d 启动gitlab

备份

192.168.247.191迁移到192.168.247.226

  1. 192.168.247.191 备份
  2. 进入gitlab 执行 gitlab-rake gitlab:backup:create使用以上命令会在/var/opt/gitlab/backups或者$GITLAB_HOME/data/backups目录下创建一个名称类似为1633136858_2021_10_02_14.3.1_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1633136858_2021_10_02_14.3.1是恢复的标识 image.png

恢复

进入gitlab 容器,

  1. cd /var/opt/gitlab/backups
  2. gitlab-ctl stop unicorn
  3. gitlab-ctl stop sidekiq
  4. chmod 777 1633136858_2021_10_02_14.3.1_gitlab_backup.tar
  5. gitlab-rake gitlab:backup:restore BACKUP=1633136858_2021_10_02_14.3.1
  6. gitlab-ctl start

迁移之后的效果

image.png

image.png

参考