From 2bb74f743060f00c151811e316ff5759e5937253 Mon Sep 17 00:00:00 2001 From: gilfanovr Date: Sun, 11 Oct 2026 13:33:28 +0300 Subject: [PATCH] =?UTF-8?q?rpi:=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=20astra=20(sudo)=20=D0=B8?= =?UTF-8?q?=20deploy-=D0=BA=D0=BB=D1=8E=D1=87=20=D1=81=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D1=8C=D1=8E=20=D0=B2=20ruzzy/infra=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B0=D0=B3=D0=B5=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- servers/fr1.md | 2 ++ servers/rpi.md | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/servers/fr1.md b/servers/fr1.md index ba17d10..ab9a478 100644 --- a/servers/fr1.md +++ b/servers/fr1.md @@ -131,6 +131,8 @@ backend=systemd banaction=ufw - `ROOT_URL`/`SSH_DOMAIN` = `git.ruzzy.dev` (не менялись). Host-ключи SSH и user/deploy-ключи перенесены с данными — `ssh://git@git.ruzzy.dev:2222` работает как раньше. - Docker-томов нет — все данные на bind-mount `/srv/gitea` (1.9 ГБ), это и есть точка бэкапа. - Это origin репо `infra` и vault openclaw. +- Deploy-ключи `ruzzy/infra`: в т.ч. `astra@rpi` (id 10, **запись**, с 2026-10-11) — агент на домашней малине (`servers/rpi.md`). +- Как завести deploy-ключ без следов: `gitea admin user generate-access-token --scopes write:repository --raw` (конфиг по умолчанию верный — работающая Gitea тоже читает `/data/gitea/conf/app.ini`, БД `/data/gitea.db`) → `POST /api/v1/repos///keys` → удалить токен прямо из БД: `docker exec -u 1000 gitea sqlite3 /data/gitea.db "delete from access_token where name='<имя>'"` (API требует basic-auth, как выяснилось с imgbot-токенами). Проверено 2026-10-11: после удаления токен получает 401. ## AmneziaWG exit (для ru1) — перенос VPN, фаза 1 - Зеркало exit-узла `de1`: AmneziaWG server `wg0` = **10.8.1.0/24**, ListenPort **36360/udp**, те же server-ключи/PSK и obfuscation-параметры (Jc/Jmin/Jmax/S1/S2/H1-4), что и на `de1` (server-pubkey `Lumb1o…`) → на `ru1` свитч = только смена Endpoint. diff --git a/servers/rpi.md b/servers/rpi.md index fbdc708..845f4ff 100644 --- a/servers/rpi.md +++ b/servers/rpi.md @@ -42,9 +42,17 @@ OneDrive на внешний HDD. Мониторится с fr1 через pushg - Доставка: `metrics-push ` = ssh с ключом `/etc/metrics-push/id_ed25519` (root, 600) на `rus@161.97.93.252`; host key fr1 закреплён в `/etc/metrics-push/known_hosts`. На fr1 ключ ограничен forced command (`servers/fr1.md` → Мониторинг). - Алерты — группа `rpi` в `stacks/monitoring/prometheus/rules/alerts.yml`. +## Агент Astra (с 2026-10-11) +Собственный агент на базе OpenAI, работает на самой малине. Сам агент ещё **не установлен** — подготовлены пользователь и доступ к репо. +- Пользователь `astra` (группы `sudo`, `adm`, `systemd-journal`, `users`), пароль заблокирован, **sudo NOPASSWD** (`/etc/sudoers.d/90-astra`) — по решению пользователя: агент сам рестартует сервисы, ставит пакеты, правит конфиги. +- ⚠️ sudo = агент видит всё: токен OneDrive (`~rus/.config/rclone/rclone.conf`), пуш-ключ метрик (`/etc/metrics-push/`), свой deploy-ключ с записью в `infra`. Утечка контекста агента = утечка этих секретов. +- Рабочая копия `~astra/infra` (клон `ruzzy/infra`), git identity `Astra (rpi) `. Доступ — deploy-ключ `~astra/.ssh/gitea_infra` (**с правом записи**, в Gitea id 10 «astra@rpi»), `~astra/.ssh/config` → `git.ruzzy.dev:2222`, host key Gitea (RSA) закреплён в `~astra/.ssh/known_hosts` и сверен с Mac. Push проверен 2026-10-11 (тестовая ветка создана и удалена). +- Автопулла нет: агент сам делает `git pull` перед работой — фоновый pull конфликтовал бы с его незакоммиченными правками. + ## Открытые хвосты (на 2026-10-11) - ⏳ Закрепить `192.168.10.25` за MAC `dc:a6:32:db:b0:f9` на роутере. - ⏳ USB3-хаб с питанием → подключить и отформатировать WD Elements 1 ТБ (вторая копия архива — сейчас копия одна). - Нет node-exporter (CPU/RAM/диск самой малины в Prometheus не видны) — пуш через pushgateway для node-метрик неудобен; решить, нужен ли. - Первый прогон бэкапа стартовал до появления `ExecStopPost` — его итог может не дойти в метрики; `backup_last_success_timestamp` появится с первого прогона по таймеру. До этого `BackupStale` молчит (серии нет). +- ⏳ Установить и запустить самого агента Astra (OpenAI) под `astra`; дописать сюда, как он запускается и где его ключ API. - Через неделю снять SMART и посчитать реальный прирост Start_Stop/Load_Cycle — прогноз ресурса пока оценочный.