NMS_Tools is distributed as:
- Standalone Linux binaries (PyInstaller)
- DEB packages (Debian/Ubuntu)
- RPM packages (Fedora/RHEL/openSUSE)
- Nightly builds (binaries + packages + metadata)
This document describes how packages are built, how they are structured, and how to reproduce the packaging process locally.
All build artifacts are placed under:
build/ linux-x86_64/ # Final PyInstaller binaries temp/ # PyInstaller working directory packages/ # DEB/RPM output
Each tool produces a single self-contained binary:
check_cert check_html check_interfaces check_ports check_weather
/usr/bin/check_cert /usr/bin/check_html /usr/bin/check_interfaces /usr/bin/check_ports /usr/bin/check_weather /usr/share/doc/nms-tools/ /usr/share/licenses/nms-tools/
/usr/bin/check_cert /usr/bin/check_html /usr/bin/check_interfaces /usr/bin/check_ports /usr/bin/check_weather /usr/share/doc/nms_tools/ /usr/share/licenses/nms_tools/
Packages may optionally install tools into:
/usr/local/nagios/libexec/
or:
/usr/local/nagios/libexec/NMS_Tools/
This is controlled by the packaging spec and can be toggled per environment.
./scripts/build_all.shThis produces:
build/linux-x86_64/check_*
./packaging/build_deb.sh./packaging/build_rpm.shBoth scripts:
- Copy binaries into staging directories
- Generate control/spec metadata
- Produce final packages under: build/packages/
NMS_Tools uses deterministic version stamping:
- Version is defined in VERSION
- Build scripts embed the version into:
- DEB control file
- RPM spec file
- Nightly build metadata
- GitHub release assets
Nightly builds append a timestamp:
1.4.0+nightly.20260524
Nightly builds include:
- All binaries
- DEB/RPM packages
- SHA256 checksums
- Build metadata (commit, timestamp, tool versions)
Published automatically to:
https://linktech-engineering-llc.github.io/NMS_Tools/
Packaging is designed to be deterministic:
- PyInstaller spec files are curated and tracked in Git
- No auto-generated spec files
- All paths are absolute and stable
- No Python runtime required
- No external dependencies
- Identical builds across machines
To install tools into a Nagios plugin directory, modify:
[DEBIAN/install]
[nms_tools.spec]
Example:
/usr/local/nagios/libexec/NMS_Tools/check_cert
This allows packaging for:
- Nagios Core
- Icinga
- Naemon
- NRPE/NCPA agents
Releases are published via GitHub Actions:
- Tag a version (v1.4.0)
- CI builds binaries + packages
- CI uploads release assets
- CI updates nightly dashboard
Manual publishing is also supported via:
./packaging/publish_release.sh
- All binaries are self-contained and require no Python installation.
- Packaging scripts are idempotent and safe to re-run.
- DEB/RPM metadata follows distro guidelines.
- Nagios plugin installation is fully supported.