gitlab自动备份文件到群晖

  • 把群晖smb挂载到gitlab机器
  • 更改gitlab配置备份文件夹位置改到挂载目录
  • 创建定时任务备份gitlab

安装工具

sudo apt-get install cifs-utils  

创建挂载点

sudo mkdir /mnt/nas  

创建smb鉴权文件.smbcredentials,文件内容:

username=$YOUR_USERNAME  
password=$YOUR_PASSWORD  

更改/etc/fstab文件,在最后一行添加

//$YOUR_SMB_SERVER_ADDR/share /mnt/nas cifs credentials=/path/of/.smbcredentials,iocharset=utf8,dir_mode=0777,file_mode=0777,noperm 0 0

其中noperm很重要,不检查文件权限,否则设置来设置去,总是不能777,gitlab备份总是Permission Denied

挂载目录, (如果之前挂的有问题,就先执行sudo umount -a再mount)

sudo mount -a  

将挂在目录的命令mount -a添加到开启自动运行,注意添加在exit 0之前

vim /etc/rc.local  

更改gitlab配置

vim /etc/gitlab/gitlab.rb  

打开如下配置,酌情修改

gitlab_rails['manage_backup_path'] = ture  
gitlab_rails['backup_path'] = "/mnt/nas"  
gitlab_rails['backup_keep_time'] = 604800  

让配置生效

sudo gitlab-ctl reconfigure  

尝试手动备份,在挂载目录看到文件就代表成功

sudo gitlab-rake gitlab:backup:create  

添加定时任务

crontab -e  

增加一行, 每天凌晨4点备份

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

Ruosen

Be a Geek, Do the right thing;