Files
trade-doc/rpc/baremetal-iac.md

72 lines
1.9 KiB
Markdown

# Bare metal (mevnode) jako IaC: runner na VPS
Cel: utrzymywać `mevnode-baremetal` (Solana RPC box) jako **IaC w Git**, wdrażane z VPS.
Dlaczego z VPS:
- masz stały “runner” (k3s box), który i tak żyje 24/7,
- łatwiej ograniczyć dostęp do bare metalu (WireGuard + allowlist),
- nie mieszasz kluczy i narzędzi na laptopie.
## Założenia
- Na VPS masz alias SSH `mevnode-baremetal` (w `~/.ssh/config`).
- Na bare metalu w `root/.ssh/authorized_keys` jest publiczny klucz z VPS.
- Repo `trade` jest dostępne na VPS (clone).
## Katalog IaC w repo
W tym repo jest starter Ansible:
- `infra/baremetal-solana-rpc/` — Agave (systemd) + opcjonalny Geyser + monitoring.
Sekrety (identity keypair, tokeny) **nie są w repo**.
## Setup na VPS (runner)
1) Zainstaluj Ansible (Ubuntu/Debian na VPS):
```bash
sudo apt-get update
sudo apt-get install -y ansible
```
2) Clone repo (jeśli nie masz):
```bash
git clone <YOUR_REPO_URL> trade
cd trade
```
3) Uzupełnij inventory/vars (lokalne, nie commitujemy):
```bash
cd infra/baremetal-solana-rpc/ansible
cp inventory/hosts.ini.example inventory/hosts.ini
cp group_vars/solana_rpc.yml.example group_vars/solana_rpc.yml
```
4) Dostosuj `group_vars/solana_rpc.yml` pod Wasz WireGuard IP, ścieżki danych i opcje Geyser.
5) Wdroż:
```bash
ansible-playbook -i inventory/hosts.ini playbook.yml
```
## Co to już robi (MVP)
- instaluje pakiety bazowe + `chrony`,
- przygotowuje usera `solana` + katalogi danych/logów,
- wrzuca systemd unit `solana-rpc` (Agave),
- (opcjonalnie) wrzuca config Yellowstone i podpina plugin,
- instaluje monitoring (node_exporter + probe RPC) opisany w `doc/rpc/baremetal-monitoring.md`.
## Co dalej (kolejne warstwy)
- WireGuard + firewall (żeby RPC/WS/gRPC nie wisiały publicznie),
- ograniczenie `RPC/WS` bind do WG IP,
- rotacja logów / limity journald,
- backup identity keypair + runbook odtwarzania.