From 4beb3f9f78cd3787380513b3930029fd1de7bc35 Mon Sep 17 00:00:00 2001 From: arseny Date: Tue, 15 Sep 2026 00:19:17 +0300 Subject: [PATCH] [ADD] README fleet --- README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e8063fa --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# fleet + +Идемпотентный провижнинг парка приёмников пеленгации (Raspberry Pi + HackRF). +Один прогон приводит новую или старую малинку в рабочее состояние: обновление +системы, зависимости сборки, общий deploy-ключ до Gitea, клон и сборка +`hackrf-scanner`. + +Гоняется дома, пока узлы в сети с интернетом. После переноса в изолированную +сеть (коммутатор, статические IP) на карте уже есть всё; правки кода дальше +идут `rsync` + сборка на месте. Статические IP playbook не трогает. + +## Требования + +- на управляющей машине: `ansible` (Arch: `pacman -S ansible`), доступ по ssh + к узлам под `pi` по ключу; +- на узлах: Raspberry Pi OS (Debian 13), `pi` с sudo без пароля, интернет. + +## Первый запуск + + scripts/gen-key.sh # пара keys/gitea_deploy (в .gitignore) + # добавить keys/gitea_deploy.pub как deploy key (read-only) + # в Gitea: IU9/hackrf-scanner + ansible-playbook playbook.yml # весь парк + +## Теги + + base apt upgrade, зависимости, pi в plugdev + hostname имя узла из инвентаря + key deploy-ключ, ssh config, known_hosts + repo clone/pull ветки scanner_branch (stash локальных правок) + build cmake configure + build + + ansible-playbook playbook.yml -l node106 --tags repo,build + +## Инвентарь + +`inventory/hosts.yml`: адреса узлов в домашней сети (транзитные), а также +справочно -- статический IP для поля, серийник HackRF и координаты x, y (м). +Ветка репозитория -- переменная `scanner_branch`. + +## Приёмка + +1. Прогон без `failed`. +2. Второй прогон подряд -- `changed=0` на всех узлах. +3. На узле: `hackrf_info` видит устройство, `~/hackrf-scanner/build/` собран, + `git rev-parse --abbrev-ref HEAD` = `scanner_branch`, `hostname` = имя узла. +4. `ssh -T git@monitor.yss.su` с узла отвечает Gitea.