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:

  1. Determinism — identical update behavior under all conditions
  2. Reproducibility — predictable sequencing and consistent logging
  3. Audit Transparency — explicit, structured logs with no hidden state
The orchestrator scales from single‑host updates to full fleet operations.

Key Features

  1. Deterministic execution pipeline (check → refresh → update → clean → reboot)
  2. YAML‑driven inventory model (families → distros → hosts)
  3. Local execution via sudo_run
  4. Remote execution via SSHSession with keyfile or password fallback
  5. Operator‑grade structured logging
  6. Dry‑run mode for previewing commands
  7. Flexible host selection: --family, --distro, --host

Inventory Model

RunUpdates uses a structured YAML inventory defining:

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

Roadmap

Near‑Term

Mid‑Term

Long‑Term

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 .