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 settingcreate_system_profile_script=False
in thehosts.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