Files
AWG2_harness/docs/PRODUCTION_EXAMPLE.md
T
2026-08-28 00:28:26 +05:00

72 lines
2.9 KiB
Markdown

# Эталонный production-пример
Документ фиксирует эталонное состояние production после успешной установки и preflight. Значения обезличены и предназначены как ориентир для smoke-проверки.
```text
SSH:
host: <server-ip>
port: 2323
user: root
Amnezia:
container: amnezia-awg2
interface: awg0
published UDP: 443
peer CIDR: 10.8.1.0/24
AmneziaDNS:
container: amnezia-dns
status: healthy
internal_ip: 172.29.172.254 # example value; verify with docker inspect
exposed_ports: 53/tcp, 53/udp inside Docker only
published_ports: none
public_53: closed
Expected status:
service: active
network tuning drift: no
traffic drift: no
host firewall drift: no
anti-torrent drift: no
swap drift: no
```
Проверка ключевых сигналов:
```bash
systemctl status awg2-harness.service --no-pager -l
systemctl status awg2-reboot-scheduler.service --no-pager -l
awg2-harness --config /etc/awg2-harness/config.toml status
```
Проверка Docker/Amnezia runtime:
```bash
docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
C="$(docker ps --format '{{.Names}}' | grep -E '^(amnezia-awg2|amnezia-awg)$' | head -n1)"
docker port "$C"
docker exec "$C" awg show
docker inspect -f 'ports={{json .NetworkSettings.Ports}}' amnezia-dns
```
Проверка AWG-контракта внутри контейнера (без раскрытия секретов):
```bash
docker exec "$C" readlink -f /usr/bin/wg # ожидается /usr/bin/awg
docker exec "$C" awg --version
docker exec "$C" ip -o link show awg0
docker exec "$C" ip -d link show awg0
docker exec "$C" awg show all allowed-ips
docker exec "$C" awg show all dump | awk -F '\t' '{ print "row=" NR, "fields=" NF, "interface=" $1 }'
```
Reference AWG 3.1 tools `v3.1.20260812` дают 30 полей interface-row и 9 полей peer-row. Исторически WireGuard/AWG 2.x/AWG 3.0 interface-row имели 5/14/28 полей. Width используется только как acceptance evidence: harness не определяет по нему версию и не классифицирует peer. Полный вывод `awg show all dump` передавать нельзя: во второй колонке interface-row находится приватный ключ устройства. Точная upstream-база приведена в [`UPSTREAM_COMPATIBILITY.md`](UPSTREAM_COMPATIBILITY.md).
Проверка, что runtime config создан вручную (ожидаемое поведение):
```bash
test -f /etc/awg2-harness/config.toml && echo "runtime config present"
```
Если файл отсутствует после `apt install`, это корректно: создайте его вручную из `/usr/share/doc/awg2-harness/repo/config.example.toml`.