docs: expand netupgrade usage and configuration docs
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.
This commit is contained in:
@@ -1,32 +1,105 @@
|
||||
# netupgrade
|
||||
|
||||
Servers full upgrade script
|
||||
Interactive CLI tool to run upgrade and maintenance actions on multiple remote hosts over SSH.
|
||||
|
||||
## Where to use
|
||||
|
||||
- On a dedicated server (bastion, ...)
|
||||
- On a dedicated server (bastion, jump host, ...)
|
||||
- On your computer with an alias to your dedicated server
|
||||
- On your computer (not recommended)
|
||||
- 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:
|
||||
|
||||
- `apt`
|
||||
- `yum`
|
||||
- `pkg`
|
||||
- `pacman`
|
||||
- `apk`
|
||||
- `reboot`
|
||||
- `cmd:<remote command>`
|
||||
- `docker-stacks:<directory>`
|
||||
|
||||
## Requirements
|
||||
|
||||
- `bash`
|
||||
- `ssh`
|
||||
- `whiptail`
|
||||
- `nano`
|
||||
- `sed`
|
||||
- `tee`
|
||||
|
||||
## Install
|
||||
|
||||
### Bin as root
|
||||
### Install the executable
|
||||
|
||||
``` bash
|
||||
cp bin/netupgrade to /usr/local/bin
|
||||
```bash README.md
|
||||
cp bin/netupgrade /usr/local/bin/netupgrade
|
||||
chmod +x /usr/local/bin/netupgrade
|
||||
```
|
||||
|
||||
### Config as user
|
||||
### Create the config directory
|
||||
|
||||
``` bash
|
||||
mkdir -p ~/.config/netuprade
|
||||
touch ~/.config/netuprade/index.cfg
|
||||
```bash README.md
|
||||
mkdir -p ~/.config/netupgrade
|
||||
touch ~/.config/netupgrade/index.cfg
|
||||
```
|
||||
|
||||
### Alias on your computer with a dedicated server
|
||||
|
||||
You can save it in your .bashrc
|
||||
You can save it in your `.bashrc`
|
||||
|
||||
``` bash
|
||||
```bash README.md
|
||||
alias netupgrade='ssh -t user@10.0.0.10 netupgrade'
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The default config file is:
|
||||
|
||||
```text README.md
|
||||
~/.config/netupgrade/index.cfg
|
||||
```
|
||||
|
||||
The script sources this file as Bash code. It must define a `NODES` array.
|
||||
|
||||
Each entry uses this format:
|
||||
|
||||
```text README.md
|
||||
host;display-name;action1;action2;...
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```bash README.md
|
||||
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
|
||||
|
||||
```bash README.md
|
||||
netupgrade [--help] [-f] [-y] [configfilename]
|
||||
```
|
||||
|
||||
Options:
|
||||
|
||||
- `--help`: show help
|
||||
- `-f`: preselect all nodes
|
||||
- `-y`: pass non-interactive confirmation flags to supported package managers
|
||||
- `configfilename`: 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
|
||||
|
||||
Reference in New Issue
Block a user