gitlab服务器重装记录

重装前版本: 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)

恢复gitlab

  1. 安装docker

  2. 安装docker-compose

  3. 编写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'
  1. 添加$GITLAB_HOME环境变量,打开/etc/profile,最后一行换行添加export GITLAB_HOME=/home/gitlab,source /etc/profile生效

  2. 在/home/gitlab下创建config,logs,data文件夹

  3. 执行docker-compose up -d,下载image以及运行container

  4. 将备份压缩文件夹(可以从群晖上/rsync/varoptgitlab/data/backups目录中下载),放到$GITLAB_HOME/data/backups下

  5. 运行 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的备份处理

  1. 编写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
  1. 添加权限,chmod 777 /home/gitlab/gitlabbackup.sh

  2. 安装crontab,apt-get install cron;service cron start;

  3. 设置定时执行,运行crontab -e,在最后一行加上,crontab -l可以查看

0 3 * * * /home/gitlab/gitlabbackup.sh(代表每天凌晨3点备份)

安装vsftpd

这个网址写的很详细


本文章使用limfx的vscode插件快速发布