Files
fleet/README.md
T
2026-09-15 00:19:17 +03:00

2.4 KiB

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.