GitLab 数据备份 backup_upload 使用对象储存 S3(MinIO)
文档
- GitLab 备份
说明
GitLab使用的版本是17.9.1S3对象储存使用的是MinIO2025-02-28T09-55-16Z
配置
-
配置前准备
示例 说明 bucket_name gitlab-backup-upload Buckets 名称,单独一个 access_key_id gitlab-access-id-xxx 秘钥ID secret_access_key gitlab-secret-key-xxx 秘钥凭证 endpoint http://minio.example.com:9000 MinIO(S3)API 地址(非网页地址) -
修改配置
vim /etc/gitlab/gitlab.rb找到 gitlab_rails[‘backup_upload_remote_directory’] 附近,修改为下列示例
# 对象储存保存的 bucket_name gitlab_rails['backup_upload_remote_directory'] = "gitlab-backup-upload" gitlab_rails['backup_upload_connection'] = { # MinIO(S3)无需修改 'provider' => 'AWS', # MinIO(S3)无需修改 'region' => 'eu-west-1', # MinIO(S3)凭证ID 'aws_access_key_id' => 'gitlab-access-id-xxx', # MinIO(S3)凭证秘钥 'aws_secret_access_key' => 'gitlab-secret-key-xxx', # MinIO(S3)API 地址(非网页地址) # 其中 minio.example.com:9000 就是 URL 拼接的 host 'endpoint' => 'http://minio.example.com:9000', # URL 拼接方式 # true:host/bucket_name/object,如:http://minio.example.com:9000/gitlab-backup-upload/object # false:bucket_name.host/object,如:http://gitlab-backup-upload.minio.example.com:9000/object 'path_style' => true }# 以下示例为上传到阿里云指定桶的指定文件夹内 # 阿里云对象储存的区域:上海 oss-cn-shanghai # 阿里云对象储存的 bucket_name:bucket-xuxiaowei # 阿里云对象储存的 文件夹名字:gitlab-backup-upload # 阿里云对象储存上传结果示例: # https://bucket-xuxiaowei.oss-cn-shanghai.aliyuncs.com/gitlab-backup-upload/1741419239_2025_03_08_17.8.3-jh_gitlab_backup.tar # 对象储存保存的 bucket_name 或 文件夹名字 gitlab_rails['backup_upload_remote_directory'] = "gitlab-backup-upload" gitlab_rails['backup_upload_connection'] = { # 阿里云 OSS 无需修改 'provider' => 'AWS', # 阿里云 OSS 无需修改 'region' => 'eu-west-1', # 阿里云 OSS 凭证ID 'aws_access_key_id' => 'aliyun-access-id-xxx', # 阿里云 OSS 凭证秘钥 'aws_secret_access_key' => 'aliyun-secret-key-xxx', # 阿里云 OSS API 地址 'endpoint' => 'https://bucket-xuxiaowei.oss-cn-shanghai.aliyuncs.com', # URL 拼接方式 # true:host/bucket_name/object # false:bucket_name.host/object 'path_style' => true } -
重新配置
sudo gitlab-ctl reconfigure -
执行备份完成后,查看对象储存的文件夹是否有最新的备份
sudo gitlab-rake gitlab:backup:create