Build from source
The agent is plain C++17 with OpenSSL, libcurl, libxml2, bzip2 and zlib from the distribution, so it builds the same on RHEL 8, 9 and 10.
What you need
# dnf install gcc-c++ make openssl-devel libcurl-devel libxml2-devel bzip2-devel zlib-devel
Build with make
$ wget https://datareel.com/downloads/linux_reporting_agent/linux_reporting_agent-1.1.tar.gz
$ tar xzf linux_reporting_agent-1.1.tar.gz && cd linux_reporting_agent-1.1
$ make
# make install # /usr/sbin/drra, /etc/drra, the systemd unit
# systemctl daemon-reload
make install takes DESTDIR, PREFIX, SYSCONFDIR and UNITDIR. It overwrites /etc/drra/drra.ini: keep a copy of yours.
Build the RPMs
$ tools/build_rpms.sh
Builds the source tarball and the RHEL 8, 9 and 10 RPMs in UBI containers with podman, into output/, with a .sha256sum file. The spec file is rpm/linux_reporting_agent.spec.
Tests
$ tests/drsm_test.sh # DRSM plugins and pages against a DRSM checkout
$ tests/uploads_test.sh # hook uploads end to end with php -S
Source files
| File | Contents |
|---|---|
src/drra.cpp | Commands and the service loop |
src/common.cpp, common.h | Settings, logging, helpers, version |
src/collect.cpp | The report sections |
src/scan.cpp | OpenSCAP, CSAF/VEX and dnf vulnerability scans, compliance scans |
src/agent_auth.cpp | Key, certificate, signing, registration and uploads (OpenSSL, libcurl) |
src/deliver.cpp | HTTPS, CIFS and SCP delivery |
src/hooks.cpp, uploads.cpp | Report hooks and hook uploads |
src/compat.h | RHEL 8 OpenSSL 1.1 and curl 7.61 support |
drra.ini, systemd/, rpm/ | Default settings, systemd unit and logrotate file, RPM spec |
php/ | Report server pages, install_server.sh, server.ini.example |
drsm/ | DRSM collector, linux plugins and Vulnerabilities page, with install.sh |
tools/ | build_rpms.sh, gen_docs.py for these pages |