3.3. 准备远程 PostgreSQL 数据库
在独立于管理器机器的机器上手动配置数据库。
engine-setup 和 engine-backup --mode=restore 命令只支持 en_US.UTF8 区域中的系统错误消息,即使系统区域设置不同。
postgresql.conf 文件中的区域设置必须设置为 en_US.UTF8。
数据库名称必须包含数字、下划线和小写字母。
启用 Red Hat Virtualization Manager 存储库
在 Red Hat Subscription Manager 中注册系统,附加 Red Hat Virtualization Manager 订阅并启用 Manager 软件仓库。
流程
使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:
# subscription-manager register注意如果您使用 IPv6 网络,请使用 IPv6 转换机制来访问 Content Delivery Network 和 subscription Manager。
查找
Red Hat Virtualization Manager订阅池并记录池 ID:# subscription-manager list --available使用池 ID 将订阅附加到系统:
# subscription-manager attach --pool=pool_id注意查看当前附加的订阅:
# subscription-manager list --consumed列出所有启用的软件仓库:
# yum repolist配置存储库:
# subscription-manager repos \ --disable='*' \ --enable=rhel-7-server-rpms \ --enable=rhel-7-server-supplementary-rpms \ --enable=rhel-7-server-rhv-4.3-manager-rpms \ --enable=rhel-7-server-rhv-4-manager-tools-rpms \ --enable=rhel-7-server-ansible-2.9-rpms \ --enable=jb-eap-7.2-for-rhel-7-server-rpms
初始化 PostgreSQL 数据库
安装 PostgreSQL 服务器软件包:
# yum install rh-postgresql10 rh-postgresql10-postgresql-contrib初始化 PostgreSQL 数据库,启动
postgresql服务,并确保该服务在引导时启动:# scl enable rh-postgresql10 -- postgresql-setup --initdb # systemctl enable rh-postgresql10-postgresql # systemctl start rh-postgresql10-postgresql以
postgres用户身份连接到psql命令行界面:su - postgres -c 'scl enable rh-postgresql10 -- psql'创建默认用户。Manager 的默认用户是
engine,Data Warehouse 的默认用户是ovirt_engine_history:postgres=# create role user_name with login encrypted password 'password';创建数据库。Manager 的默认数据库名称为
engine,Data Warehouse 的默认数据库名称为ovirt_engine_history:postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';连接到新数据库:
postgres=# \c database_name添加
uuid-ossp扩展:database_name=# CREATE EXTENSION "uuid-ossp";如果
plpgsql语言不存在,请添加 plpgsql 语言:database_name=# CREATE LANGUAGE plpgsql;退出
psql接口:database_name=# \q通过启用 md5 客户端身份验证来确保可以远程访问数据库。编辑
/var/opt/rh/rh-postgresql10/lib/pgsql/data/pg_hba.conf文件,并在文件底部以local开头的行立即添加以下行,将X.X.X.X替换为 Manager 或 Data Warehouse 机器的 IP 地址,将0-32或0-128替换为 CIDR 掩码长度:host database_name user_name X.X.X.X/0-32 md5 host database_name user_name X.X.X.X::/0-128 md5例如:
# IPv4, 32-bit address: host engine engine 192.168.12.10/32 md5 # IPv6, 128-bit address: host engine engine fe80::7a31:c1ff:0000:0000/96 md5允许到数据库的 TCP/IP 连接。编辑
/var/opt/rh/rh-postgresql10/lib/pgsql/data/postgresql.conf文件并添加以下行:listen_addresses='*'这个示例将
postgresql服务配置为侦听所有接口上的连接。您可以通过提供 IP 地址来指定接口。更新 PostgreSQL 服务器配置。在
/var/opt/rh/rh-postgresql10/lib/pgsql/data/postgresql.conf文件中,将以下行添加到文件的底部:autovacuum_vacuum_scale_factor=0.01 autovacuum_analyze_scale_factor=0.075 autovacuum_max_workers=6 maintenance_work_mem=65536 max_connections=150 work_mem=8192打开用于 PostgreSQL 数据库连接的默认端口,并保存更新的防火墙规则:
# firewall-cmd --zone=public --add-service=postgresql # firewall-cmd --permanent --zone=public --add-service=postgresql重启
postgresql服务:# systemctl restart rh-postgresql10-postgresql- 另外,还可使用 https://www.postgresql.org/docs/10/ssl-tcp.html#SSL-FILE-USAGE 中的说明将 SSL 设置为安全数据库连接。