作者:徐晓伟
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。
在之前的文章极狐GitLab 使用指南:Runner Cache 缓存配置演示了 MinIO 的安装和配置。本文演示如何让极狐GitLab artifacts 使用对象存储 S3(MinIO)。
- 配置前准备
配置前需要准备好一下四个重要信息:
- bucket_name: Buckets 名称,单独一个
- access_key_id:秘钥ID
- secret_access_key:秘钥凭证
- endpoint:MinIO(S3)API 地址(非网页地址)
- 修改配置
vim /etc/gitlab/gitlab.rb
找到 gitlab_rails['artifacts_object_store_enabled']
附近,修改为下列示例:
# gitlab_rails['artifacts_enabled'] = true
# gitlab_rails['artifacts_path'] = "/var/opt/gitlab/gitlab-rails/shared/artifacts"
# 上传 artifacts 开启对象存储
gitlab_rails['artifacts_object_store_enabled'] = true
# 代理访问(隐藏 S3 地址)
gitlab_rails['artifacts_object_store_proxy_download'] = true
# 对象储存保存的 bucket_name
gitlab_rails['artifacts_object_store_remote_directory'] = "gitlab-artifacts"
gitlab_rails['artifacts_object_store_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 地址(非网页地址)
# 其中 192.168.80.4:9000 就是 URL 拼接的 host
'endpoint' => 'http://192.168.80.4:9000',
# URL 拼接方式
# true:host/bucket_name/object,如:http://192.168.80.4:9000/gitlab-uploads/object
# false:bucket_name.host/object,如:http://gitlab-uploads.192.168.80.4:9000/object
'path_style' => true
}
- 执行命令,让配置生效:
sudo gitlab-ctl reconfigure
root 用户可以不用执行 sudo。
- 执行流水线并上传产物文件测试
查看是否上传成功或者查看对象储存中是否存新增了这个产物文件。
- 迁移历史文件(可选)
# 将本地的文件迁移到 S3 中
sudo gitlab-rake gitlab:artifacts:migrate
root 用户可以不用执行 sudo。
更多关于极狐GitLab 的最佳实践,可以搜索关注公众号【极狐GitLab】或者登录极狐GitLab 官网进行学习。