f0d6ddf26984d43ee6237e58f0c810c308c0988d
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.
Приёмка
- Прогон без
failed. - Второй прогон подряд --
changed=0на всех узлах. - На узле:
hackrf_infoвидит устройство,~/hackrf-scanner/build/собран,git rev-parse --abbrev-ref HEAD=scanner_branch,hostname= имя узла. ssh -T git@monitor.yss.suс узла отвечает Gitea.
Description
Languages
Shell
100%