Help us learn about your current experience with the documentation. Take the survey.

用于 Linux 软件包安装的独立 PostgreSQL

  • 版本:免费、专业、旗舰
  • 产品:GitLab 自管版

如果您希望将数据库服务与 GitLab 应用服务器分开托管,可以使用随 Linux 软件包一同打包的 PostgreSQL 二进制文件来实现。我们推荐这样做,它是我们适用于每秒 40 次请求 (RPS) 或 2000 名用户的参考架构的一部分。

进行设置

  1. 通过 SSH 登录到 PostgreSQL 服务器。

  2. 使用 GitLab 下载页面上的步骤 1 和 2,下载并安装您所需的 Linux 软件包。请勿完成下载页面上的任何其他步骤。

  3. 为 PostgreSQL 生成一个密码哈希值。这假设您使用的是默认用户名 gitlab(推荐)。该命令会要求您输入密码并确认。在下一步中,请将此命令输出的值用作 POSTGRESQL_PASSWORD_HASH 的值。

    sudo gitlab-ctl pg-password-md5 gitlab
  4. 编辑 /etc/gitlab/gitlab.rb 文件,并添加以下内容,同时适当更新占位符的值。

    • POSTGRESQL_PASSWORD_HASH - 上一步输出的值
    • APPLICATION_SERVER_IP_BLOCKS - 连接到数据库的 GitLab 应用服务器的 IP 子网或 IP 地址列表,以空格分隔。示例:%w(123.123.123.123/32 123.123.123.234/32)
    # 禁用除 PostgreSQL 外的所有组件
    roles(['postgres_role'])
    prometheus['enable'] = false
    alertmanager['enable'] = false
    pgbouncer_exporter['enable'] = false
    redis_exporter['enable'] = false
    gitlab_exporter['enable'] = false
    
    postgresql['listen_address'] = '0.0.0.0'
    postgresql['port'] = 5432
    
    # 将 POSTGRESQL_PASSWORD_HASH 替换为生成的 md5 值
    postgresql['sql_user_password'] = 'POSTGRESQL_PASSWORD_HASH'
    
    # 将 XXX.XXX.XXX.XXX/YY 替换为网络地址
    # ????
    postgresql['trust_auth_cidr_addresses'] = %w(APPLICATION_SERVER_IP_BLOCKS)
    
    # 禁用自动数据库迁移
    gitlab_rails['auto_migrate'] = false
  5. 重新配置 GitLab 以使更改生效。

  6. 记下 PostgreSQL 节点的 IP 地址或主机名、端口以及明文密码。在后续配置 GitLab 应用服务器时,将需要这些信息。

  7. 启用监控

系统支持高级配置选项,如果需要可以添加。