Gitlab阿里云阿里云

如何将gitlab备份自动上传到阿里云的OSS

2017-12-10  本文已影响61人  LarryZhou

使用gitlab-rake命令创建备份时,默认的配置可将备份文件上传到AWS S3保存,而在国内若要上传到阿里云的OSS时,如何实现呢?

新版本的gitlab(本文使用的gitlab-ce 10.2.2)也提供了上传gitlab备份文件到OSS的功能,同时也包含上传到Google, OpenStack Swift, Rackspace这些云存储的功能,当然那些都是国外的服务了,国内使用Ali OSS是比较方便的了。gitlab的文档中默认提供了如何上传到AWS S3的方法,并提供了示例,但是对于阿里云OSS,只是说可以上传,由于没有示例,参数则需要自己去摸索。gitlab使用Fog Library(http://fog.io/) 实现与各个云平台的对象存储交互,将备份文件上传到这些对象存储的。仔细查找了这里面有关阿里云OSS访问的内容和部分配置,搜索和试验了几个小时后,终于成功将备份上传到了阿里OSS。

第一步,修改/etc/gitlab/gitlab.rb配置文件,修改如下内容:

gitlab_rails['backup_upload_connection'] = {

'provider' => 'aliyun',

'aliyun_accesskey_id' => '有权限访问存储桶的用户key',

'aliyun_accesskey_secret' => '有权限访问存储桶的密钥',

'aliyun_oss_endpoint' => 'http://oss-cn-shanghai-internal.aliyuncs.com',

'aliyun_oss_bucket' => 'my-backup',    //OSS桶

'aliyun_oss_location' => 'shanghai'      //此行内容不关键,但必须要有

}

gitlab_rails['backup_upload_remote_directory'] = 'gitlab'    //存储gitlab备份的桶子目录

第二步,执行gitlab-ctl reconfigre让上步的配置生效

第三步,执行gitlab-rake gitlab:backup:create,等命令成功结束后,到阿里云的OSS桶中检查,就会发现备份文件已经自动上传了。

进一步将gitlab备份命令加入到crontab中,实现每日自动备份上传到阿里云,这样就可以将代码安全的有一个异地备份了。在gitlab.rb中修改gitlab_rails['backup_keep_time'] = 86400这行的值,可以控制gitlab本地备份目录中保存历史文件的时间长度,这样可避免本地的文件过多将磁盘空间耗尽。

另外,一般代码库的备份文件都不会小了,为了节省阿里云上面存储桶的存储成本,可以给存储桶设置文件的生命周期,比如超过30天的文件转入冷存储设备或删除,以降低存储成本。

至此,一个自动化的gitlab代码云端备份就大功造成了。

上一篇 下一篇

猜你喜欢

热点阅读