pages-configuration.md 3.5 KB
Newer Older
1 2 3 4 5 6
---
sidebar_position: 2
---

# pages

7
GitLab pages(静态页面相关文件)使用对象储存 S3(MinIO)
徐晓伟's avatar
徐晓伟 已提交
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

## 文档

1. GitLab Pages 管理
    1. [gitlab-jh 中文文档](https://docs.gitlab.cn/jh/administration/pages/index.html)
    2. [gitlab-ee](https://docs.gitlab.com/ee/administration/pages/index.html)
2. s3-兼容的连接设置
    1. [gitlab-jh 中文文档](https://docs.gitlab.cn/jh/administration/pages/index.html#s3-%E5%85%BC%E5%AE%B9%E7%9A%84%E8%BF%9E%E6%8E%A5%E8%AE%BE%E7%BD%AE)
    2. [gitlab-ee](https://docs.gitlab.com/ee/administration/pages/index.html#s3-compatible-connection-settings)
3. 将 Pages 部署迁移到对象存储
    1. [gitlab-jh 中文文档](https://docs.gitlab.cn/jh/administration/pages/index.html#%E5%B0%86-pages-%E9%83%A8%E7%BD%B2%E8%BF%81%E7%A7%BB%E5%88%B0%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8)
    2. [gitlab-ee](https://docs.gitlab.com/ee/administration/pages/index.html#migrate-pages-deployments-to-object-storage)

## 说明

1. GitLab 使用的版本是 15.11.2
2. S3 对象储存使用的是 MinIO
徐晓伟's avatar
徐晓伟 已提交
25
3. 示例项目:[my-vue-app](https://framagit.org/xuxiaowei-com-cn/my-vue-app)
徐晓伟's avatar
徐晓伟 已提交
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

## 配置

1. 配置前准备

   |                   | 示例                                                    | 说明                     |
   |-------------------|-------------------------------------------------------|------------------------|
   | bucket_name       | gitlab-uploads                                        | Buckets 名称,单独一个        |
   | access_key_id     | gitlab-access-id-xxx                                  | 秘钥ID                   |
   | secret_access_key | gitlab-secret-key-xxx                                 | 秘钥凭证                   |
   | endpoint          | [http://192.168.80.4:9000](http://192.168.80.4:9000/) | MinIO(S3)API 地址(非网页地址) |

2. 修改配置

   ```shell
   vim /etc/gitlab/gitlab.rb
   ```

   找到 gitlab_rails['pages_object_store_enabled'] 附近,修改为下列示例

   ```shell
   # gitlab_rails['pages_local_store_enabled'] = true
   # gitlab_rails['pages_local_store_path'] = "/var/opt/gitlab/gitlab-rails/shared/pages"
   
   gitlab_rails['pages_object_store_enabled'] = true
   gitlab_rails['pages_object_store_remote_directory'] = "gitlab-pages"
   gitlab_rails['pages_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 拼接方式
徐晓伟's avatar
徐晓伟 已提交
65 66
     # true:host/bucket_name/object,如:http://192.168.80.4:9000/gitlab-pages/object
     # false:bucket_name.host/object,如:http://gitlab-pages.192.168.80.4:9000/object
徐晓伟's avatar
徐晓伟 已提交
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
     'path_style' => true
   }
   ```

3. 重新配置

   ```shell
   sudo gitlab-ctl reconfigure
   ```

4. 执行 Pages 流水线并上传产物文件测试
    1. 查看是否上传成功
    2. 查看对象储存中是否存新增了 Pages 流水线这个产物文件
5. 迁移历史文件(可选)

   ```shell
   # 将本地的文件迁移到 S3 中
   sudo gitlab-rake gitlab:pages:deployments:migrate_to_object_storage
   
   # 将 S3 中的文件迁移到本地文件中
   # sudo gitlab-rake gitlab:pages:deployments:migrate_to_local
   ```