Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

附录 D. 为 Red Hat Manager 准备远程 PostgreSQL 数据库

用户可以选择在一个远程的 Red Hat Enterprise Linux 7 机器上配置一个 PostgreSQL 数据库作为 Manager 的数据库。在默认情况下,Red Hat Virtualization Manager 的配置脚本(engine-setup)会在 Manager 所在的本地机器上自动配置一个 Manager 数据库。如需了解与自动配置的数据库相关的信息,请参阅 第 3.3 节 “配置 Red Hat Virtualization Manager”;如需了解在 Manager 所在机器上使用自定义值配置 Manager 数据库的信息,请参阅 附录 E, 为 Red Hat Virtualization Manager 在本地手工配置一个 PostgreSQL 数据库
使用以下方法在 Manager 所在机器以外的机器上配置数据库。在配置 Manager 前,需要先设置这个数据库,并需要在 engine-setup 中的相关步骤中输入这个数据库的验证信息。

注意

engine-setupengine-backup --mode=restore 命令只支持 en_US.UTF8 格式的系统错误信息(即使系统的语言设置与此不同)。
postgresql.conf 文件的语言设置必须为 en_US.UTF8

重要

数据库名只能包含数字、下划线和小写字母。

过程 D.1. 为 Red Hat Manager 准备远程 PostgreSQL 数据库

  1. 安装 PostgreSQL 服务器软件包:
    # yum install postgresql-server
  2. 初始化 PostgreSQL 数据库,启动 postgresql 服务,把它设置为在系统引导时自动启动:
    # su -l postgres -c "/usr/bin/initdb --locale=en_US.UTF8 --auth='ident' --pgdata=/var/lib/pgsql/data/"
    # systemctl start postgresql.service
    # systemctl enable postgresql.service
  3. 使用 postgres 用户连接到 psql 命令行界面:
    # su - postgres
    $ psql
  4. 为 Manager 读写数据库创建一个用户。Manager 的默认用户名是 engine
    postgres=# create role user_name with login encrypted password 'password';
  5. 创建一个用来保存 Red Hat Virtualization 环境信息的数据库。Manager 的默认数据库名是 engine
    postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
  6. 连接到新数据库并添加 plpgsql 语言:
    postgres=# \c database_name
    database_name=# CREATE LANGUAGE plpgsql;
  7. 启用 md5 客户验证机制来允许对数据库进行访问。编辑 /var/lib/pgsql/data/pg_hba.conf 文件,在文件底部的、以 local 开头的行下面添加以下内容(使用 Manager 的 IP 地址替换 X.X.X.X 的值):
    host    database_name    user_name    X.X.X.X/32   md5
  8. 允许 TCP/IP 到数据库的连接。编辑 /var/lib/pgsql/data/postgresql.conf 文件,添加以下行:
    listen_addresses='*'
    在这个例子中,postgresql 服务被配置为监听所有接口上的连接。您可以使用 IP 地址来指定只监听特定接口上的连接。
  9. 打开 PostgreSQL 数据库连接使用的默认端口,保存更新的防火墙规则:
    # yum install iptables-services
    # iptables -I INPUT 5 -p tcp --dport 5432 -j ACCEPT
    # service iptables save
  10. 重启 postgresql 服务:
    # systemctl restart postgresql.service
另外,可以设置 SSL 来进行安全的数据库连接(请参阅 http://www.postgresql.org/docs/8.4/static/ssl-tcp.html#SSL-FILE-USAGE)。