Appendix B. Preparing a Local Manually Configured PostgreSQL Database

Use this procedure to set up the Manager database. Set up this database before you configure the Manager; you must supply the database credentials during engine-setup.


The engine-setup and engine-backup --mode=restore commands only support system error messages in the en_US.UTF8 locale, even if the system locale is different.

The locale settings in the postgresql.conf file must be set to en_US.UTF8.


The database name must contain only numbers, underscores, and lowercase letters.

Enabling the Red Hat Virtualization Manager Repositories

You need to log in and register the Manager machine with Red Hat Subscription Manager, attach the Red Hat Virtualization Manager subscription, and enable the Manager repositories.


  1. Register your system with the Content Delivery Network, entering your Customer Portal user name and password when prompted:

    # subscription-manager register

    If you are using an IPv6 network, use an IPv6 transition mechanism to access the Content Delivery Network and subscription manager.

  2. Find the Red Hat Virtualization Manager subscription pool and record the pool ID:

    # subscription-manager list --available
  3. Use the pool ID to attach the subscription to the system:

    # subscription-manager attach --pool=pool_id

    To view currently attached subscriptions:

    # subscription-manager list --consumed

    To list all enabled repositories:

    # dnf repolist
  4. Configure the repositories:

    # subscription-manager repos \
        --disable='*' \
        --enable=rhel-8-for-x86_64-baseos-rpms \
        --enable=rhel-8-for-x86_64-appstream-rpms \
  5. Enable version 12 of the postgresql module.

    # dnf module -y enable postgresql:12
  6. Synchronize installed packages to update them to the latest available versions.

    # dnf distro-sync --nobest

    Additional resources

    For information on modules and module streams, see the following sections in Installing, managing, and removing user-space components

Initializing the PostgreSQL Database

  1. Install the PostgreSQL server package:

    # dnf install postgresql-server postgresql-contrib
  2. Initialize the PostgreSQL database instance:

    # postgresql-setup --initdb
  3. Start the postgresql service, and ensure that this service starts on boot:

    # systemctl enable postgresql
    # systemctl start postgresql
  4. Connect to the psql command line interface as the postgres user:

    # su - postgres -c psql
  5. Create a default user. The Manager’s default user is engine and Data Warehouse’s default user is ovirt_engine_history:

    postgres=# create role user_name with login encrypted password 'password';
  6. Create a database. The Manager’s default database name is engine and Data Warehouse’s default database name is 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';
  7. Connect to the new database:

    postgres=# \c database_name
  8. Add the uuid-ossp extension:

    database_name=# CREATE EXTENSION "uuid-ossp";
  9. Add the plpgsql language if it does not exist:

    database_name=# CREATE LANGUAGE plpgsql;
  10. Quit the psql interface:

    database_name=# \q
  11. Edit the /var/lib/pgsql/data/pg_hba.conf file to enable md5 client authentication, so the engine can access the database locally. Add the following line immediately below the line that starts with local at the bottom of the file:

    host    database_name    user_name    md5
    host    database_name    user_name    ::0/0   md5
  12. Update the PostgreSQL server’s configuration. Edit the /var/lib/pgsql/data/postgresql.conf file and add the following lines to the bottom of the file:

  13. Restart the postgresql service:

    # systemctl restart postgresql
  14. Optionally, set up SSL to secure database connections using the instructions at

Return to Section 3.3, “Installing and Configuring the Red Hat Virtualization Manager”, and answer Local and Manual when asked about the database.