gns3 deploy initial repo
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# gns3-remote-install-redux
|
||||
|
||||
Revised version of the OG [upstream GNS3 remote installer](https://github.com/GNS3/gns3-server/blob/master/scripts/remote-install.sh).
|
||||
|
||||
## What's different
|
||||
|
||||
- **Single primary apt pass**: packages, repos, and groups rolled up from flags before install runs (as much as possible)
|
||||
- **Preflight**: checks root, OS, needed commands, ports, modules, CPU virt extensions. Reports every error condition at once
|
||||
- **Auto-loads KVM**: `modprobe` + persist to `/etc/modules-load.d/`, unless `--without-kvm`
|
||||
- **Retry + verify**: apt retries 3x with backoff; services verified with `systemctl is-active`; GNS3 API curled post-install
|
||||
- **WireGuard**: adds modern VPN option
|
||||
- **EC crypto**: P-384 by default for OpenVPN (faster keygen, no DH params). `--legacy-rsa` if needed
|
||||
- **Encrypted configs**: VPN configs are encrypted with one-time passphrase. A copy+paste one-liner is printed to console to curl and decrypt the file at once. `--unsafe-configs` to skip
|
||||
- **Scoped firewall**: UFW rules allow VPN from 0.0.0.0/0, others scoped to SSH source + local subnets
|
||||
- **Sysctl hardening**: rp_filter, syncookies, ICMP redirect rejection, source route disable
|
||||
- **Landing page**: ephemeral web page gives server info, version-matched client downloads, VPN configs, warnings, and resources. Auto-expires via systemd timer. Uses Python httpd.server module, instead of installing nginx package.
|
||||
- **Reconfigure**: enhanced idempotence. detects prior install, stops services, re-runs cleanly
|
||||
- **Testable**: `main()` guarded so functions can be sourced for BATS or plain bash tests
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
sudo ./gns3-remote-install-redux.sh [OPTIONS]
|
||||
```
|
||||
|
||||
## Flags
|
||||
|
||||
| Flag | Default | Description |
|
||||
|---|---|---|
|
||||
| `--with-openvpn` | off | Install and configure OpenVPN |
|
||||
| `--with-wireguard` | off | Install and configure WireGuard |
|
||||
| `--with-welcome` | off | Install GNS3-VM welcome console UI |
|
||||
| `--without-kvm` | KVM on | Disable KVM hardware acceleration |
|
||||
| `--without-docker` | Docker on | Skip Docker CE installation |
|
||||
| `--without-firewall` | UFW on | Skip automatic UFW rule configuration |
|
||||
| `--without-system-upgrade` | upgrade on | Skip `apt upgrade` |
|
||||
| `--unsafe-configs` | encrypted | Serve VPN configs unencrypted |
|
||||
| `--legacy-rsa` | EC P-384 | Use RSA-2048 + DH for OpenVPN |
|
||||
| `--unstable` | stable PPA | Use the GNS3 unstable PPA |
|
||||
| `--custom-repository REPO` | `ppa` | Use a custom GNS3 PPA name |
|
||||
| `-h`, `--help` | | Show help |
|
||||
|
||||
## Requirements
|
||||
|
||||
Ubuntu Server 24.04 LTS (amd64). Run as root or with `sudo`.
|
||||
|
||||
## License
|
||||
|
||||
Based on the original GNS3 remote installer (GPLv3).
|
||||
Reference in New Issue
Block a user