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

1.9 KiB

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):
sudo apt-get update
sudo apt-get install -y ansible
  1. Clone repo (jeśli nie masz):
git clone <YOUR_REPO_URL> trade
cd trade
  1. Uzupełnij inventory/vars (lokalne, nie commitujemy):
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
  1. Dostosuj group_vars/solana_rpc.yml pod Wasz WireGuard IP, ścieżki danych i opcje Geyser.

  2. Wdroż:

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.