4.13. 在 Satellite 中使用外部数据库
作为 Red Hat Satellite 的安装过程的一部分,satellite-installer 命令会在与 Satellite 相同的服务器上安装 PostgreSQL 数据库。在某些 Satellite 部署中,使用外部数据库而不是默认的本地数据库有助于服务器负载。
红帽不提供对外部数据库维护的支持或工具。这包括备份、升级和数据库调整。您必须拥有自己的数据库管理员,才能支持和维护外部数据库。
要为 Satellite 创建和使用外部数据库,您必须完成以下步骤:
- 第 4.13.2 节 “为外部数据库准备主机”.为外部数据库准备主机。
- 第 4.13.3 节 “安装 PostgreSQL”.使用拥有它们的专用用户,为 Satellite、Candlepin 和 Pulp 使用数据库准备 PostgreSQL。
-
第 4.13.4 节 “将 Satellite 服务器配置为使用外部数据库”.编辑
satellite-installer
的参数,以指向新数据库,并运行satellite-installer
。
4.13.1. PostgreSQL 作为外部数据库注意事项 复制链接链接已复制到粘贴板!
Foreman、Katello 和 Candlepin 使用 PostgreSQL 数据库。如果要将 PostgreSQL 用作外部数据库,可以帮助您确定此选项是否适合您的 Satellite 配置。Satellite 支持 PostgreSQL 版本 13。
外部 PostgreSQL 的优点
- 在 Satellite 上增加可用内存和可用 CPU
-
在 PostgreSQL 数据库中将
shared_buffers
设置为一个高数字的灵活性,而不会干扰 Satellite 上的其他服务 - 在不影响 Satellite 操作的情况下,调整 PostgreSQL 服务器系统的灵活性
外部 PostgreSQL 的缺点
- 增加了部署复杂性,导致故障排除更困难
- 外部 PostgreSQL 服务器是一个额外的系统来补丁和维护
- 如果 Satellite 或 PostgreSQL 数据库服务器出现硬件或存储故障,则 Satellite 无法正常工作
- 如果 Satellite 服务器和数据库服务器之间存在延迟,则性能可能会会受到影响
如果您怀疑 Satellite 上的 PostgreSQL 数据库会导致性能问题,请使用 Satellite 6 中的信息:如何启用 postgres 查询日志记录来检测运行查询的速度,以确定您是否有缓慢的查询。超过一秒的查询通常是由大型安装的性能问题造成的,而迁移到外部数据库可能并不能提供帮助。如果您有较慢的查询,请联系红帽支持团队。
4.13.2. 为外部数据库准备主机 复制链接链接已复制到粘贴板!
使用最新的 Red Hat Enterprise Linux 9 或 Red Hat Enterprise Linux 8 安装新置备的系统来托管外部数据库。
Red Hat Enterprise Linux 的订阅不为将 Satellite 与外部数据库一起使用提供正确的服务级别协议。您还必须将 Satellite 订阅附加到您要用于外部数据库的基础操作系统。
先决条件
- 准备的主机必须满足 Satellite 的存储要求。
- 您必须将 Satellite 订阅附加到您的服务器。有关订阅的更多信息,请参阅在 连接的网络环境中安装 Satellite 服务器 中的 附加 Satellite 基础架构订阅。
流程
选择您要在其中安装外部数据库的操作系统和版本:
4.13.2.1. Red Hat Enterprise Linux 9 复制链接链接已复制到粘贴板!
禁用所有软件仓库:
subscription-manager repos --disable "*"
# subscription-manager repos --disable "*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用以下软件仓库:
subscription-manager repos \ --enable=satellite-6.16-for-rhel-9-x86_64-rpms \ --enable=satellite-maintenance-6.16-for-rhel-9-x86_64-rpms \ --enable=rhel-9-for-x86_64-baseos-rpms \ --enable=rhel-9-for-x86_64-appstream-rpms
# subscription-manager repos \ --enable=satellite-6.16-for-rhel-9-x86_64-rpms \ --enable=satellite-maintenance-6.16-for-rhel-9-x86_64-rpms \ --enable=rhel-9-for-x86_64-baseos-rpms \ --enable=rhel-9-for-x86_64-appstream-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证是否启用了所需的软件仓库:
dnf repolist enabled
# dnf repolist enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.13.2.2. Red Hat Enterprise Linux 8 复制链接链接已复制到粘贴板!
禁用所有软件仓库:
subscription-manager repos --disable "*"
# subscription-manager repos --disable "*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用以下软件仓库:
subscription-manager repos \ --enable=satellite-6.16-for-rhel-8-x86_64-rpms \ --enable=satellite-maintenance-6.16-for-rhel-8-x86_64-rpms \ --enable=rhel-8-for-x86_64-baseos-rpms \ --enable=rhel-8-for-x86_64-appstream-rpms
# subscription-manager repos \ --enable=satellite-6.16-for-rhel-8-x86_64-rpms \ --enable=satellite-maintenance-6.16-for-rhel-8-x86_64-rpms \ --enable=rhel-8-for-x86_64-baseos-rpms \ --enable=rhel-8-for-x86_64-appstream-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用以下模块:
dnf module enable satellite:el8
# dnf module enable satellite:el8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意启用模块
satellite:el8
会警告与postgresql:10
和ruby:2.5
冲突,因为这些模块被设置为 Red Hat Enterprise Linux 8 上的默认模块版本。模块satellite:el8
具有postgresql:12
和ruby:2.7
的依赖项,它们将通过satellite:el8
模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 中模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux Application Streams 生命周期。
验证
验证是否启用了所需的软件仓库:
dnf repolist enabled
# dnf repolist enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.13.3. 安装 PostgreSQL 复制链接链接已复制到粘贴板!
您只能在内部数据库安装过程中安装 satellite-installer
工具安装的相同版本的 PostgreSQL。Satellite 支持 PostgreSQL 版本 12。
流程
在您的新数据库服务器中安装 PostgreSQL:
dnf install postgresql-server postgresql-evr postgresql-contrib
# dnf install postgresql-server postgresql-evr postgresql-contrib
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 初始化 PostgreSQL 数据库:
postgresql-setup --initdb
# postgresql-setup --initdb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/var/lib/pgsql/data/postgresql.conf
文件:vi /var/lib/pgsql/data/postgresql.conf
# vi /var/lib/pgsql/data/postgresql.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,需要调整外部 PostgreSQL 的默认配置,才能使用 Satellite。基本推荐的外部数据库配置调整如下:
- checkpoint_completion_target: 0.9
- max_connections: 500
- shared_buffers: 512MB
- work_mem: 4MB
删除
#
并编辑以侦听入站连接:listen_addresses = '*'
listen_addresses = '*'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在文件末尾添加以下行以使用 SCRAM 进行身份验证:
password_encryption=scram-sha-256
password_encryption=scram-sha-256
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/var/lib/pgsql/data/pg_hba.conf
文件:vi /var/lib/pgsql/data/pg_hba.conf
# vi /var/lib/pgsql/data/pg_hba.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在文件中添加以下行:
host all all Satellite_ip/32 scram-sha-256
host all all Satellite_ip/32 scram-sha-256
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动并启用 PostgreSQL 服务:
systemctl enable --now postgresql
# systemctl enable --now postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开 postgresql 端口:
firewall-cmd --add-service=postgresql
# firewall-cmd --add-service=postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使更改持久:
firewall-cmd --runtime-to-permanent
# firewall-cmd --runtime-to-permanent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到
postgres
用户并启动 PostgreSQL 客户端:su - postgres -c psql
$ su - postgres -c psql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建三个数据库和专用角色:一个用于 Foreman,一个用于 Candlepin,另一个用于 Pulp:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 退出
postgres
用户:\q
# \q
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Satellite 服务器中,测试您可以访问数据库。如果连接成功,命令会返回
1
。PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping" PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping" PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"
# PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping" # PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping" # PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.13.4. 将 Satellite 服务器配置为使用外部数据库 复制链接链接已复制到粘贴板!
使用 satellite-installer
命令配置 Satellite 以连接到外部 PostgreSQL 数据库。
前提条件
- 您已在 Red Hat Enterprise Linux 服务器上安装和配置了 PostgreSQL 数据库。
流程
要为 Satellite 配置外部数据库,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要为这些外部数据库启用安全套接字层(SSL)协议,请添加以下选项:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow