2ed34b97be
Update the README with installation, requirements, supported actions, config format, and usage details. Align the CLI help text with current behavior and add startup checks for required runtime dependencies.
2.0 KiB
2.0 KiB
netupgrade
Interactive CLI tool to run upgrade and maintenance actions on multiple remote hosts over SSH.
Where to use
- On a dedicated server (bastion, jump host, ...)
- On your computer with an alias to your dedicated server
- On your computer directly (not recommended)
Features
- Select one or more hosts from an interactive checklist
- Run predefined actions on each selected host
- Write execution logs to
~/netupgrade.log
Supported actions:
aptyumpkgpacmanapkrebootcmd:<remote command>docker-stacks:<directory>
Requirements
bashsshwhiptailnanosedtee
Install
Install the executable
cp bin/netupgrade /usr/local/bin/netupgrade
chmod +x /usr/local/bin/netupgrade
Create the config directory
mkdir -p ~/.config/netupgrade
touch ~/.config/netupgrade/index.cfg
Alias on your computer with a dedicated server
You can save it in your .bashrc
alias netupgrade='ssh -t user@10.0.0.10 netupgrade'
Configuration
The default config file is:
~/.config/netupgrade/index.cfg
The script sources this file as Bash code. It must define a NODES array.
Each entry uses this format:
host;display-name;action1;action2;...
Example:
NODES=(
"192.168.1.10;web-01;apt;reboot"
"192.168.1.11;db-01;apt;cmd:systemctl restart postgresql"
"192.168.1.12;docker-01;docker-stacks:/opt/stacks"
)
Usage
netupgrade [--help] [-f] [-y] [configfilename]
Options:
--help: show help-f: preselect all nodes-y: pass non-interactive confirmation flags to supported package managersconfigfilename: path to a config file
Notes
- SSH connections currently use
root@host - The tool is interactive and intended for manual administration workflows
- After execution, the log file is opened in
nano - The configuration file is sourced as shell code, so only use trusted config files