付録D リモートの PostgreSQL データベースの準備

デフォルトでは、Manager の設定スクリプト engine-setup は、Manager マシンのローカルに Manager データベースを作成/設定します。データベースの自動設定については、「Red Hat Virtualization Manager の設定」を参照してください。

Manager マシンでカスタムの値を使用して Manager データベースを設定する場合は、「付録E 手動設定のローカル PostgreSQL データベースの準備」を参照してください。Manager を設定する前に Manager データベースを設定する必要があります。engine-setup の実行中に、データベースの認証情報を提示する必要があるためです。

Data Warehouse の設定スクリプトでは、データベースをローカルまたはリモートに作成する選択が可能です。ただし、手動で Data Warehouse 用にリモートのデータベースを設定する状況が考えられます。

以下の手順を使用して、Manager のインストール先とは別のマシンにデータベースを設定します。

注記

engine-setup および engine-backup --mode=restore コマンドは、システムロケールが違っていても en_US.UTF8 ロケールのシステムエラーメッセージしかサポートしません。

postgresql.conf ファイルのロケール設定は en_US.UTF8 に設定する必要があります。

重要

データベース名には、数字、アンダースコア、小文字しか使用できません。

Red Hat Virtualization Manager リポジトリーの有効化

Red Hat Subscription Manager でシステムを登録し、Red Hat Enterprise Linux Server および Red Hat Virtualization サブスクリプションをアタッチし、Manager リポジトリーを有効にします。

手順

  1. コンテンツ配信ネットワークにシステムを登録します。プロンプトが表示されたら、カスタマーポータルのユーザー名とパスワードを入力します。

    # subscription-manager register
  2. Red Hat Enterprise Linux Server および Red Hat Virtualization のサブスクリプションプールを探し、プール ID を書き留めておきます。

    # subscription-manager list --available
  3. 上記のプール ID を使用して、サブスクリプションをシステムにアタッチします。

    # subscription-manager attach --pool=pool_id
    注記

    現在アタッチされているサブスクリプションを確認するには、以下のコマンドを実行します。

    # subscription-manager list --consumed

    有効化されたリポジトリーを一覧表示するには、以下のコマンドを実行します。

    # yum repolist
  4. すべての既存リポジトリーを無効にします。

    # subscription-manager repos --disable=*
  5. 必要なリポジトリーを有効にします。

    # subscription-manager repos --enable=rhel-7-server-rpms
    # subscription-manager repos --enable=rhel-7-server-supplementary-rpms
    # subscription-manager repos --enable=rhel-7-server-rhv-4.2-manager-rpms
    # subscription-manager repos --enable=rhel-7-server-rhv-4-manager-tools-rpms
    # subscription-manager repos --enable=rhel-7-server-ansible-2-rpms
    # subscription-manager repos --enable=jb-eap-7-for-rhel-7-server-rpms

PostgreSQL データベースの初期化

  1. PostgreSQL サーバーパッケージをインストールします。

    # yum install rh-postgresql95 rh-postgresql95-postgresql-contrib
  2. PostgreSQL データベースを初期化し、postgresql サービスを起動し、さらにブート時に起動されるように設定します。

    # scl enable rh-postgresql95 -- postgresql-setup --initdb
    # systemctl enable rh-postgresql95-postgresql
    # systemctl start rh-postgresql95-postgresql
  3. postgres ユーザーとして、psql コマンドラインインターフェースに接続します。

    su - postgres -c 'scl enable rh-postgresql95 -- psql'
  4. デフォルトユーザーを作成します。Manager および Data Warehouse のデフォルトユーザーは、それぞれ engine および ovirt_engine_history です。

    postgres=# create role user_name with login encrypted password 'password';
  5. データベースを作成します。Manager および Data Warehouse のデフォルトのデータベース名は、それぞれ engine および 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';
  6. 新しいデータベースに接続します。

    postgres=# \c database_name
  7. uuid-ossp エクステンションを追加します。

    database_name=# CREATE EXTENSION "uuid-ossp";
  8. 言語に plpgsql がなければ、それを追加します。

    database_name=# CREATE LANGUAGE plpgsql;
  9. md5 クライアントの認証を有効にして、データベースにリモートからアクセスできるようにします。/var/lib/pgsql/data/pg_hba.conf ファイルを編集して、ファイルの一番下にある local で始まる行のすぐ下に以下の行を追加します。X.X.X.X は、Manager または Data Warehouse マシンの IP アドレスに置き換えてください。

    host    database_name    user_name    ::0/32    md5
    host    database_name    user_name    ::0/128   md5
  10. データベースへの TCP/IP 接続を許可します。/var/opt/rh/rh-postgresql95/lib/pgsql/data/postgresql.conf ファイルを編集して、以下の行を追加します。

    listen_addresses='*'

    上記の例では、全インターフェースの接続をリッスンするように postgresql サービスを設定しています。IP アドレスを指定して、特定のインターフェースをリッスンするように設定することもできます。

  11. PostgreSQL サーバーの設定を更新します。/var/opt/rh/rh-postgresql95/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'
  12. PostgreSQL データベースの接続に使用するデフォルトのポートを開放して、更新したファイアウォールルールを保存します。

    # firewall-cmd --zone=public --add-service=postgresql
    # firewall-cmd --permanent --zone=public --add-service=postgresql
  13. postgresql サービスを再起動します。

    # systemctl rh-postgresql95-postgresql restart

オプションで、PostgreSQL のドキュメント の手順に従って、SSL を設定してデータベース接続をセキュリティー保護します。