Files
fleet/README.md
T

48 lines
2.4 KiB
Markdown
Raw Normal View History

2026-09-15 00:19:17 +03:00
# 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.