重装前版本: ubuntu16.04;ssh8.6p;gitlab11.9.1-ee;
重装后版本: ubuntu20.04;ssh8.2p;gitlab11.9.1-ee;dokcer20.10.8-ce;dockercompose1.29.2;
有一块硬盘专门用来备份,需要挂载在固定路径下。开机自动挂载步骤可以参考Ubuntu硬盘挂载操作。
需要注意的是一定要挂载在/home/zhengwei/backup路径下(需要新建用户zhengwei)
安装docker
安装docker-compose
编写docker-compose.yml(目前位于/home/gitlab下)
gitweb:
image: 'gitlab/gitlab-ee:11.9.1-ee.0'
container_name: gitlab
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['gitlab_shell_ssh_port'] = 29
external_url 'http://git.jtext.cn'
ports:
- '80:80'
- '29:22'
- '9443:443'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
添加$GITLAB_HOME环境变量,打开/etc/profile,最后一行换行添加export GITLAB_HOME=/home/gitlab,source /etc/profile生效
在/home/gitlab下创建config,logs,data文件夹
执行docker-compose up -d,下载image以及运行container
将备份压缩文件夹(可以从群晖上/rsync/varoptgitlab/data/backups目录中下载),放到$GITLAB_HOME/data/backups下
运行 dokcer exec -it gitlab bash 进入gitlab container的执行界面,运行如下命令
gitlab-ctl reconfigure
gitlab-rake gitlab:backup:restore BACKUP=1627262750_2021_07_26_11.9.1-ee(这里的文件名根据具体的备份文件名称来,注意把文件名ee后面的部分都删除)
gitlab-ctl reconfigure
这个时候上gitlab网页应该已经恢复正常了,下一步就是gitlab的备份处理
编写gitlabbackup.sh(目前位于/home/gitlab下),记得下载sshpass
#!/bin/bash
docker exec -it gitlab gitlab-rake gitlab:backup:create
sshpass -p jtext103. rsync -r $GITLAB_HOME/config rsync@nas.jtext.cn::rsync/etcgitlab
sshpass -p jtext103. rsync -r $GITLAB_HOME/logs rsync@nas.jtext.cn::rsync/varloggitlab
sshpass -p jtext103. rsync -r $GITLAB_HOME/data rsync@nas.jtext.cn::rsync/varoptgitlab
添加权限,chmod 777 /home/gitlab/gitlabbackup.sh
安装crontab,apt-get install cron;service cron start;
设置定时执行,运行crontab -e,在最后一行加上,crontab -l可以查看
0 3 * * * /home/gitlab/gitlabbackup.sh(代表每天凌晨3点备份)
本文章使用limfx的vscode插件快速发布