如何將gitlab備份自動(dòng)上傳到阿里云的OSS

使用gitlab-rake命令創(chuàng)建備份時(shí),默認(rèn)的配置可將備份文件上傳到AWS S3保存,而在國(guó)內(nèi)若要上傳到阿里云的OSS時(shí),如何實(shí)現(xiàn)呢?

新版本的gitlab(本文使用的gitlab-ce 10.2.2)也提供了上傳gitlab備份文件到OSS的功能,同時(shí)也包含上傳到Google, OpenStack Swift, Rackspace這些云存儲(chǔ)的功能,當(dāng)然那些都是國(guó)外的服務(wù)了,國(guó)內(nèi)使用Ali OSS是比較方便的了。gitlab的文檔中默認(rèn)提供了如何上傳到AWS S3的方法,并提供了示例,但是對(duì)于阿里云OSS,只是說(shuō)可以上傳,由于沒(méi)有示例,參數(shù)則需要自己去摸索。gitlab使用Fog Library(http://fog.io/) 實(shí)現(xiàn)與各個(gè)云平臺(tái)的對(duì)象存儲(chǔ)交互,將備份文件上傳到這些對(duì)象存儲(chǔ)的。仔細(xì)查找了這里面有關(guān)阿里云OSS訪問(wèn)的內(nèi)容和部分配置,搜索和試驗(yàn)了幾個(gè)小時(shí)后,終于成功將備份上傳到了阿里OSS。

第一步,修改/etc/gitlab/gitlab.rb配置文件,修改如下內(nèi)容:

gitlab_rails['backup_upload_connection'] = {

'provider' => 'aliyun',

'aliyun_accesskey_id' => '有權(quán)限訪問(wèn)存儲(chǔ)桶的用戶key',

'aliyun_accesskey_secret' => '有權(quán)限訪問(wèn)存儲(chǔ)桶的密鑰',

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

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

'aliyun_oss_location' => 'shanghai' ? ? ?//此行內(nèi)容不關(guān)鍵,但必須要有

}

gitlab_rails['backup_upload_remote_directory'] = 'gitlab' ? ?//存儲(chǔ)gitlab備份的桶子目錄

第二步,執(zhí)行g(shù)itlab-ctl reconfigre讓上步的配置生效

第三步,執(zhí)行g(shù)itlab-rake gitlab:backup:create,等命令成功結(jié)束后,到阿里云的OSS桶中檢查,就會(huì)發(fā)現(xiàn)備份文件已經(jīng)自動(dòng)上傳了。

進(jìn)一步將gitlab備份命令加入到crontab中,實(shí)現(xiàn)每日自動(dòng)備份上傳到阿里云,這樣就可以將代碼安全的有一個(gè)異地備份了。在gitlab.rb中修改gitlab_rails['backup_keep_time'] = 86400這行的值,可以控制gitlab本地備份目錄中保存歷史文件的時(shí)間長(zhǎng)度,這樣可避免本地的文件過(guò)多將磁盤空間耗盡。

另外,一般代碼庫(kù)的備份文件都不會(huì)小了,為了節(jié)省阿里云上面存儲(chǔ)桶的存儲(chǔ)成本,可以給存儲(chǔ)桶設(shè)置文件的生命周期,比如超過(guò)30天的文件轉(zhuǎn)入冷存儲(chǔ)設(shè)備或刪除,以降低存儲(chǔ)成本。

至此,一個(gè)自動(dòng)化的gitlab代碼云端備份就大功造成了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容