Lightweight SSH-based update manager for Linux systems. Supports checking updates, upgrading packages, and running autoremove across multiple hosts from a single script.
Find a file
2026-03-18 13:55:12 +01:00
.gitignore Initial commit: update manager with examples and README 2026-03-18 13:09:14 +01:00
hosts.conf.example Add example config files 2026-03-18 13:27:39 +01:00
README.md Add full README with install guide 2026-03-18 13:55:12 +01:00
update-manager.conf.example Clean config handling and use example files 2026-03-18 13:47:57 +01:00
update-manager.sh Clean config handling and use example files 2026-03-18 13:47:57 +01:00

Update Manager

Lightweight SSH-based update manager for Linux systems.


Features

  • Check for updates across multiple hosts
  • SSH-based (no agents)
  • Simple host inventory
  • No external dependencies

Installation

git clone cd update-manager chmod +x update-manager.sh ./update-manager.sh install

This will:

  • Install the tool in /opt/update-manager
  • Create global command: update-manager
  • Create config files if missing

Configuration

Edit hosts:

nano /opt/update-manager/hosts.conf

Format:

name ip ssh_user

Example:

server1 192.168.1.10 user server2 192.168.1.20 user


SSH (required)

Passwordless SSH must be configured.

ssh-keygen -t ed25519 ssh-copy-id user@192.168.1.10

Repeat for all hosts.

Test:

ssh user@192.168.1.10

Should work without password.


Usage

update-manager check


Output

server1 🔴 2 updates server2 🟢 up-to-date server3 connection failed


Config

/etc/update-manager.conf

Default:

HOSTS_FILE="/opt/update-manager/hosts.conf" SSH_OPTIONS="-o BatchMode=yes -o ConnectTimeout=5"


Notes

  • hosts.conf and update-manager.conf are local files (not in Git)
  • .example files are templates
  • Existing config is not overwritten on reinstall

Roadmap

  • update command
  • parallel execution
  • scheduled checks
  • logging integration

Philosophy

Keep it simple.

  • No agents
  • No dependencies
  • Just SSH