Skip to content

System Requirements

Operating System

The following operating systems are supported:

  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux 9

Networking Requirements

DNS Configuration

All hosts should have properly configured DNS records, including:

  • Forward DNS records (A/AAAA records)
  • Reverse DNS pointer records (PTR records)

Forward and reverse DNS records are used by various system components to communicate with each other. Additionally, the Ansible playbook uses the ansible_fqdn variable as a default value, which requires a properly configured reverse DNS record.

Server Software Packages

Tip

If running the Ansible playbook with use_become=True, these packages are installed automatically.

The installation of VOR Stream requires the installation of common RHEL repository packages. These packages are enumerated by software component below.

All Servers (foundational)

To support a wide range of server OS versions as well as to be as self-contained as possible from other software that may be on the system, Python 3.11 is compiled from source. This requires the following packages.

  • autoconf
  • bzip2
  • bzip2-devel
  • expat-devel
  • findutils
  • gcc-c++
  • gdb
  • gdbm-devel
  • glibc-devel
  • gmp-devel
  • libffi-devel
  • libX11-devel
  • make
  • mesa-libGL-devel
  • ncurses-devel
  • net-tools
  • openssl
  • openssl-devel
  • pkgconf-pkg-config
  • python-rpm-macros
  • readline-devel
  • sqlite-devel
  • systemtap-sdt-devel
  • tar
  • tcl-devel
  • tk-devel
  • xz
  • xz-devel
  • zlib-devel

RHEL 9 package install notes

If installing on RHEL 9, the glibc-langpack-en package is required. Also, in RHEL 9, some packages have moved to the crb repository, which can be enabled with the --enablerepo=crb option when running the dnf command. If installing these packages using the provided Ansible playbook, the crb repository is enabled by default.

PostgreSQL

  • gcc
  • make (3.80 or later required)
  • openssl-devel (1.0.1 or later required)
  • readline
  • readline-devel
  • zlib

Packages required for generating PostgreSQL documentation

  • docbook-dtds
  • docbook-style-xsl
  • fop
  • libxslt

Compute Server

  • gcc
  • gcc-c++
  • gd-devel
  • openssh-server
  • unzip

Web Server

  • libicu (required for Syncfusion service)

Django

  • gcc
  • mailcap
  • openldap-devel
  • pcre
  • pcre-devel
  • unixODBC-devel

Additional packages needed for integration with Microsoft SQL Server

When deploying VOR Stream with Microsoft SQL Server as a backend for Django, the following packages are required:

  • unixODBC-devel
  • ODBC Driver 18 for SQL Server or later (see Microsoft's documentation for installation instructions). Prior versions of the driver will not work.

RabbitMQ

Erlang RPMs are available from the rabbitmq/erlang-rpm repository. VOR Stream ships with and uses Erlang 26.2.5.5. Install the appropriate RPM for your architecture.

OS Version Architecture RPM Download
RHEL 8 x86_64 erlang-26.2.5.5-1.el8.x86_64.rpm
RHEL 8 Arm erlang-26.2.5.5-1.el8.aarch64.rpm
RHEL 9 x86_64 erlang-26.2.5.5-1.el9.x86_64.rpm
RHEL 9 Arm erlang-26.2.5.5-1.el9.aarch64.rpm

Below is an example of how to install the Erlang RPM for RHEL 9 x86_64.

sudo dnf install https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5.5/erlang-26.2.5.5-1.el9.x86_64.rpm

OS User and Group

The install user and group are defined in the hosts.ini file. The default values are vor_user=vrisk and vor_group=vrisk, but these can be overridden to use any user and group defined on the system. They must exist on the system before the Ansible playbook is run unless running as a priviledged user with use_become=True, in which case the user and group will be created by the Ansible playbook.

Server Directories

Tip

If running the Ansible playbook with use_become=True, these directories are created automatically.

The install user must have recursive ownership to the following directories defined in the hosts.ini file:

  • vor_root
  • vor_log_directory

System Profile Script

The system profile script is used to automatically set up environment variables for the user's shell when they log in. It is located at {{ vor_root }}/etc/profile.d/{{ vor_stream_profile_script_name }}.sh. By default, the playbook will try to copy this script to the /etc/profile.d directory.

If running as a non-root user, the playbook will fail if the contents of the file do not match the expected contents. There are a few approaches to handle this situation:

  • Disable copying the profile script to /etc/profile.d by setting create_system_profile_script=False in the hosts.ini file.
  • Run the playbook with use_become=False and manually copy the generated profile script to the /etc/profile.d directory. For example:

    sudo cp /opt/vor/etc/profile.d/vor-stream.sh /etc/profile.d
    

Warning

If the profile script is not copied to the /etc/profile.d directory, the environment variables will not be set for the user's shell when they log in. They will need to manually source the profile script in their shell using a command like the following:

source /opt/vor/etc/profile.d/vor-stream.sh