4.5. PostgreSQL 要求
Red Hat Ansible Automation Platform 使用 PostgreSQL 13。在将 PostgreSQL 用户密码保存到数据库前,会使用 SCRAM-SHA-256 安全散列算法对其进行处理。
要确定您的自动化控制器实例是否可以访问数据库,您可以使用 awx-manage check_db
命令。
Service | 必填 | 备注 |
---|---|---|
数据库 |
|
|
PostgreSQL 配置
另外,您可以将 PostgreSQL 数据库配置为不由 Red Hat Ansible Automation Platform 安装程序管理的独立节点。当 Ansible Automation Platform 安装程序管理数据库服务器时,它会使用通常为大多数工作负载推荐的默认值配置服务器。有关可以用来提高数据库性能的设置的更多信息,请参阅 数据库设置。
其他资源
有关调整 PostgreSQL 服务器的更多信息,请参阅 PostgreSQL 文档。
4.5.1. 设置外部(客户支持)数据库
红帽不支持使用外部(客户支持)数据库,但客户使用它。以下有关 inital 配置的指导只从产品安装角度提供,以避免相关的支持请求。
要在外部 PostgreSQL 兼容数据库中创建用于自动化控制器的数据库、用户和密码,请使用以下步骤。
流程
安装,然后连接到具有超级用户权限的 PostgreSQL 兼容数据库服务器。
# psql -h <db.example.com> -U superuser -p 5432 -d postgres <Password for user superuser>:
其中:
-h hostname --host=hostname
指定运行服务器的机器的主机名。如果该值以斜杠开头,它将用作 Unix-domain 套接字的目录。
-d dbname --dbname=dbname
指定要连接到的数据库的名称。这等同于将
dbname
指定为命令行中的第一个非选项参数。dbname
可以是连接字符串。如果是,则连接字符串参数会覆盖任何冲突的命令行选项。-U username --username=username
以用户
用户名
而非默认值连接到数据库。(您必须有权限才能这样做。)-
使用分配给用户的
createDB
或管理员角色,创建用户、数据库和密码。如需更多信息,请参阅 数据库角色。 将数据库凭据和主机详情作为外部数据库添加到自动化控制器清单文件。
以下示例中使用了默认值。
[database] pg_host='db.example.com' pg_port=5432 pg_database='awx' pg_username='awx' pg_password='redhat'
运行安装程序。
如果您将 PostgreSQL 数据库与自动化控制器搭配使用,则数据库由 connect 用户所有,且必须为其分配
createDB
或管理员角色。- 检查您是否能够使用用户、密码和数据库名称连接到创建的数据库。
-
检查用户的权限,该用户应具有
createDB
或 administrator 角色。
在此过程中,您必须检查外部数据库覆盖。如需更多信息,请参阅 https://access.redhat.com/articles/4010491
4.5.2. 为自动化中心 PostgreSQL 数据库启用 hstore 扩展
在 Ansible Automation Platform 2.4 中,数据库迁移脚本使用 hstore
字段来存储信息,因此必须启用对自动化中心 PostgreSQL 数据库的 hstore
扩展。
使用 Ansible Automation Platform 安装程序和受管 PostgreSQL 服务器时,此过程是自动的。
如果 PostgreSQL 数据库是外部的,则必须在自动化中心安装前手动为自动化中心 PostreSQL 数据库启用 hstore
扩展。
如果在自动化中心安装前没有启用 hstore
扩展,在数据库迁移过程中会引发故障。
流程
检查 PostgreSQL 服务器上是否有扩展(自动化 hub 数据库)。
$ psql -d <automation hub database> -c "SELECT * FROM pg_available_extensions WHERE name='hstore'"
其中
<automation hub database>
的默认值为automationhub
。带有
hstore
可用的输出示例 :name | default_version | installed_version |comment ------+-----------------+-------------------+--------------------------------------------------- hstore | 1.7 | | data type for storing sets of (key, value) pairs (1 row)
带有
hstore
不可用的输出示例 :name | default_version | installed_version | comment ------+-----------------+-------------------+--------- (0 rows)
在基于 RHEL 的服务器上,
hstore
扩展包含在postgresql-contrib
RPM 软件包中,该软件包在安装 PostgreSQL 服务器 RPM 软件包时不会自动安装。要安装 RPM 软件包,请使用以下命令:
dnf install postgresql-contrib
使用以下命令,在自动化中心数据库上创建
hstore
PostgreSQL 扩展:$ psql -d <automation hub database> -c "CREATE EXTENSION hstore;"
输出:
CREATE EXTENSION
在以下输出中,
installed_version
字段包含使用的hstore
扩展,表示启用了hstore
。name | default_version | installed_version | comment -----+-----------------+-------------------+------------------------------------------------------ hstore | 1.7 | 1.7 | data type for storing sets of (key, value) pairs (1 row)
4.5.3. Ansible Automation Platform PostgreSQL 数据库的基准测试存储性能
使用 Flexible I/O Tester (FIO)工具检查是否满足最低 Ansible Automation Platform PostgreSQL 数据库要求。FIO 是一个用于对存储系统的读取和写入 IOPS 性能进行基准测试的工具。
先决条件
您已安装了 Flexible I/O Tester (
fio
)存储性能基准工具。要安装
fio
,请以 root 用户身份运行以下命令:# yum -y install fio
您有足够的磁盘空间来存储
fio
测试数据日志文件。该流程中显示的示例至少需要 60GB 磁盘空间在
/tmp
目录中:-
numjobs
设置由 命令运行的作业数量。 -
size=10G
设置每个作业生成的文件大小。
-
-
您已调整了
size
参数的值。调整此值可减少测试数据量。
流程
运行随机写入测试:
$ fio --name=write_iops --directory=/tmp --numjobs=3 --size=10G \ --time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 \ --verify=0 --bs=4K --iodepth=64 --rw=randwrite \ --group_reporting=1 > /tmp/fio_benchmark_write_iops.log \ 2>> /tmp/fio_write_iops_error.log
运行随机读测试:
$ fio --name=read_iops --directory=/tmp \ --numjobs=3 --size=10G --time_based --runtime=60s --ramp_time=2s \ --ioengine=libaio --direct=1 --verify=0 --bs=4K --iodepth=64 --rw=randread \ --group_reporting=1 > /tmp/fio_benchmark_read_iops.log \ 2>> /tmp/fio_read_iops_error.log
查看结果:
在基准命令编写的日志文件中,搜索以
iops
开头的行。此行显示测试的最小、最大值和平均值。以下示例显示了日志文件中随机读取测试的行:
$ cat /tmp/fio_benchmark_read_iops.log read_iops: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64 […] iops : min=50879, max=61603, avg=56221.33, stdev=679.97, samples=360 […]
您必须根据您自己的业务需求、应用程序工作负载和新需求审核、监控和重新查看日志文件。