Lightweight SSH-based update manager for Linux systems.
Supports checking updates, upgrading packages, and running autoremove across multiple hosts from a single script.
| .gitignore | ||
| hosts.conf.example | ||
| README.md | ||
| update-manager.conf.example | ||
| update-manager.sh | ||
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