Задания, отчёты и патчи, лежавшие в C:\Users\Ochenstarik\projects и в домашней папке, перенесены в agents/. Разложено по агентам там, где имя файла позволяло определить автора; остальное — в _salvage-2026-08-18/ и разбирается вручную. Патчи в notes/salvage-2026-08-18/ — незакоммиченная работа из брошенных рабочих копий: она существовала только на диске. Тяжёлое (релизные архивы, инсталляторы, наборы данных) в репозиторий не попало: оно лежит рядом, в Agent_projects/_archive и Agent_projects/_data. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
9.8 KiB
Очистка и установка — готовые блоки
1. Очистка · выполнить на каждом сервере
Безопасно на машине, где SMM никогда не стояло: всё пропускается молча. Порядок важен — сначала остановка служб, потом удаление юнитов, иначе процесс осиротеет и продолжит держать порт.
sudo systemctl disable --now \
ochenstarik-smm-control.service \
ochenstarik-smm-agent.service \
ochenstarik-smm-provisioning-helper.service \
ochenstarik-smm-firewall.service \
wg-quick@smm0.service 2>/dev/null || true
for u in ochenstarik-smm-control ochenstarik-smm-agent ochenstarik-monitor; do
sudo pkill -u "$u" 2>/dev/null || true
done
sleep 2
for u in ochenstarik-smm-control ochenstarik-smm-agent ochenstarik-monitor; do
sudo pkill -9 -u "$u" 2>/dev/null || true
done
sudo rm -f /etc/systemd/system/ochenstarik-smm-*.service
sudo rm -rf /usr/local/lib/ochenstarik-server-monitor-manager
sudo rm -f /usr/local/libexec/ochenstarik-smm-policy-apply /usr/local/libexec/ochenstarik-smm-metrics
sudo rm -f /usr/local/sbin/ochenstarik-smm-emergency /usr/local/sbin/ochenstarik-server-monitor-manager.sh
sudo rm -f /etc/sudoers.d/ochenstarik-smm-control
sudo rm -rf /var/lib/ochenstarik-server-monitor-manager \
/var/lib/ochenstarik-server-monitor-manager-enrollment \
/var/lib/ochenstarik-monitor \
/etc/ochenstarik-server-monitor-manager \
/opt/smm
sudo rm -f /etc/wireguard/smm0.conf /etc/sysctl.d/90-ochenstarik-smm-mesh.conf
sudo nft delete table inet ochenstarik_smm 2>/dev/null || true
for u in ochenstarik-smm-control ochenstarik-smm-agent ochenstarik-monitor; do
sudo userdel "$u" 2>/dev/null || true
sudo groupdel "$u" 2>/dev/null || true
done
sudo systemctl daemon-reload
sudo systemctl reset-failed 2>/dev/null || true
sudo sysctl --system >/dev/null
Проверка — все четыре строки должны сообщить, что пусто:
ss -lntu | grep -E ':7443|:51820' || echo "порты свободны"
ip -4 route | grep '10\.77\.0\.' || echo "подсеть свободна"
ls /etc/systemd/system/ochenstarik-smm-*.service 2>/dev/null || echo "юнитов нет"
getent passwd ochenstarik-smm-control >/dev/null && echo "пользователь остался" || echo "пользователей нет"
Если порт всё ещё занят — процесс осиротел, найдите и снимите:
sudo ss -lntup | grep -E ':7443|:51820'
sudo kill -9 <PID>
2. Зависимости · на каждом сервере
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
curl ca-certificates openssl coreutils tar netcat-openbsd
2b. cosign · на каждом сервере · временный шаг
Установщик проверяет подпись manifest через cosign, но alpha.14 его не поставляет, а в репозиториях Ubuntu его нет. Без этого шага установка обрывается на строке ERROR: Required command is missing: cosign.
Для arm64 замените amd64 на arm64 в обеих строках.
cd /tmp && \
COSIGN_VER=v3.1.3 && \
curl -fsSLO https://github.com/sigstore/cosign/releases/download/$COSIGN_VER/cosign-linux-amd64 && \
curl -fsSLO https://github.com/sigstore/cosign/releases/download/$COSIGN_VER/cosign_checksums.txt && \
grep ' cosign-linux-amd64$' cosign_checksums.txt | sha256sum -c - && \
sudo install -m 0755 cosign-linux-amd64 /usr/local/bin/cosign && \
cosign version
Ставится в /usr/local/bin, потому что этот каталог входит в secure_path sudo — иначе установщик всё равно не увидит бинарь.
Шаг исчезнет в v0.1.0-alpha.15: cosign будет обеспечивать сам установщик.
3. Установка Hub · только на сервере с публичным IP
Путь проверен живой установкой 2026-08-15 на Ubuntu 24.04 x86_64. Команду smm-setup.sh install-hub не используем: она качает 24 МБ молча, а разбор аргументов делает уже после скачивания. Ниже — по шагам, с видимым прогрессом; заодно окно SSH не засыпает.
Для arm64 замените linux-x64 на linux-arm64 во всех строках.
3.1. Установщик
mkdir -p ~/smm && cd ~/smm && B=https://github.com/ochenstarik-ui/server-monitor-manager/releases/download/v0.1.0-alpha.14 && curl -fsSL -O "$B/smm-setup.sh" -O "$B/smm-setup.sh.sha256" && sha256sum -c smm-setup.sh.sha256
3.2. Пять релизных файлов. Manifest, подпись и сертификат обязаны лежать рядом с архивом — установщик ищет их в каталоге архива
cd ~/smm && B=https://github.com/ochenstarik-ui/server-monitor-manager/releases/download/v0.1.0-alpha.14 && for f in server-monitor-manager-linux-x64.tar.gz server-monitor-manager-linux-x64.tar.gz.sha256 server-monitor-manager-manifest.json server-monitor-manager-manifest.sig server-monitor-manager-manifest.pem; do printf '>>> %s\n' "$f"; curl -fL --progress-bar -o "$f" "$B/$f"; done && sha256sum -c server-monitor-manager-linux-x64.tar.gz.sha256
3.3. Проверка подписи отдельным шагом — быстрая, и сразу видно, работает ли cosign
cd ~/smm && bash smm-setup.sh verify-manifest server-monitor-manager-manifest.json server-monitor-manager-manifest.sig server-monitor-manager-manifest.pem
Ожидается Manifest signature is valid. Если нет — дальше не идти.
3.4. Control. Вместо ВАШ-ХОСТ — публичный IP или DNS-имя
cd ~/smm && bash smm-setup.sh install-control server-monitor-manager-linux-x64.tar.gz ВАШ-ХОСТ 7443
3.5. Mesh
cd ~/smm && bash smm-setup.sh mesh-init ВАШ-ХОСТ 51820
Шаг 3.4 выведет отпечаток CA — запишите, он понадобится при регистрации каждого Node. Повторно его можно получить так:
bash ~/smm/smm-setup.sh control-ca-fingerprint
Установленный Hub
178.212.13.102(host1885995-3.hostland.pro), Ubuntu 24.04 x86_64, поставлен 2026-08-15 изv0.1.0-alpha.14;- отпечаток CA:
EB:05:E5:16:42:EE:97:28:C2:E9:EA:6F:3E:48:3C:0C:1C:1E:02:E0:ED:9B:AF:7B:BF:24:2C:19:D4:4B:11:C4; - публичный ключ WireGuard:
AjN8XwPB11bRQa0fO5ljPlAWc0FxU+fxbeUT8AZczHk=; - mesh:
10.77.0.1/24наsmm0.
Откройте у хостера TCP 7443 и UDP 51820, и если включён ufw:
sudo ufw allow 7443/tcp comment 'SMM Control' && sudo ufw allow 51820/udp comment 'SMM WireGuard'
Проверка:
sudo curl -sf --cacert /etc/ochenstarik-server-monitor-manager/control-ca.crt \
https://ВАШ-ХОСТ:7443/healthz && echo " — Control отвечает"
4. Установка Node · на каждом из трёх остальных серверов
Сначала на Hub выпустите код — он живёт 10 минут, поэтому делайте это непосредственно перед установкой:
sudo bash ~/smm/smm-setup.sh node-code ai-agent
Имена по одному на сервер: ai-agent, home, second. Скопируйте строку SMMNODE2.....
Затем на Node — шаги 1, 2b и 3.1–3.3 из этого документа, затем:
cd ~/smm && sudo bash smm-setup.sh -- install-node server-monitor-manager-linux-x64.tar.gz
Разделитель -- обязателен. У обёртки smm-setup.sh есть собственная команда install-node без аргументов, которая качает всё заново молча; -- заставляет передать вызов дальше, в bootstrap, где install-node принимает путь к уже скачанному архиву. Без -- получите install-node takes no arguments.
Установщик запросит код — вставьте SMMNODE2...., ввод скрытый. Сверьте показанный отпечаток CA с тем, что выдал Hub, введите yes.
На выходе появится SMMPEER1.... — скопируйте и активируйте на Hub:
sudo bash ~/smm/smm-setup.sh peer-add 'SMMPEER1....'
После всех трёх, на Hub:
sudo bash ~/smm/smm-setup.sh mesh-status
Три строки со статусом active и свежими handshake — mesh собран.
Порядок целиком
- Очистка на всех четырёх машинах.
- Зависимости на всех четырёх.
- Hub на сервере с публичным IP, открыть порты.
- Node на трёх остальных, по одному: код на Hub → установка на Node →
peer-addна Hub. mesh-status— триactive.- Приёмка с вашей машины.
Установка не начнётся, пока не выпущен v0.1.0-alpha.14. Проверка:
curl -fsSI https://github.com/ochenstarik-ui/server-monitor-manager/releases/download/v0.1.0-alpha.14/smm-setup.sh | head -1