RunUpdates
Deterministic Update Orchestration for Linux Systems
RunUpdates is a deterministic, operator‑grade update orchestrator designed for Linux environments requiring reproducible sequencing, audit‑transparent execution, and a clean, YAML‑driven inventory model. It provides predictable update behavior across heterogeneous systems and supports both local and remote execution.
Frozen Binary Distribution
RunUpdates is distributed as a standalone frozen executable. It runs directly without requiring a Python installation, virtual environment, or external dependencies. This ensures consistent behavior across systems and allows automation pipelines to call the tool exactly as shipped.
Overview
RunUpdates applies deterministic engineering principles to system updates:
- Determinism — identical update behavior under all conditions
- Reproducibility — predictable sequencing and consistent logging
- Audit Transparency — explicit, structured logs with no hidden state
Key Features
- Deterministic execution pipeline (check → refresh → update → clean → reboot)
- YAML‑driven inventory model (families → distros → hosts)
- Local execution via
sudo_run - Remote execution via
SSHSessionwith keyfile or password fallback - Operator‑grade structured logging
- Dry‑run mode for previewing commands
- Flexible host selection:
--family,--distro,--host
Inventory Model
RunUpdates uses a structured YAML inventory defining:
- Distro families
- Package manager commands
- Exit‑code interpretation
- Host lists and connection parameters
Architecture Overview
1. Check Layer
Performs deterministic package‑manager checks and interprets exit codes using the YAML inventory model.
2. Refresh Layer
Refreshes package metadata using distro‑specific commands defined in the inventory.
3. Update Layer
Applies updates using hardened, non‑interactive commands with reproducible behavior.
4. Clean Layer
Performs cleanup operations such as cache removal or post‑update maintenance.
5. Reboot Layer (Optional)
Determines whether a reboot is required using distro‑specific logic.
Example Usage
# Run updates for a specific host
runupdates --host Lab-Suse-01
# Run updates for a distro family
runupdates --family linux
# Dry-run mode
runupdates --host Lab-Suse-01 --dry-run
Current Status
- Version: 1.0.0
- Edition: Community Edition (public)
- Platform: Linux (frozen executable)
- Dependencies: None
Roadmap
Near‑Term
- Unified stdout‑based update detection across all distros
- Extended exit‑code mapping
- Additional distro families
Mid‑Term
- Cross‑suite correlation with NMS_Tools
- Enhanced logging schema
- Inventory validation tooling
Long‑Term
- Distributed update telemetry
- Fleet‑wide orchestration dashboards
- Unified update framework for multiple developer tools
Links
Related Projects
License
RunUpdates is released under the MIT License. See the LICENSE file for full terms.
Contact
If you'd like to reach out, feel free to email me at ldmcclatchey@linktechengineering.net or connect with me on LinkedIn: linkedin.com/in/leonmcclatchey .