diff --git a/inventory/hosts.yml b/inventory/hosts.yml index 787bb9a..ec34ed4 100644 --- a/inventory/hosts.yml +++ b/inventory/hosts.yml @@ -32,6 +32,6 @@ all: ansible_host: 192.168.1.42 sdr_id: 4 static_ip: 11.0.0.106 - sdr_serial: "" + sdr_serial: a32868dc346d2847 x: 0.00 y: 0.50 diff --git a/playbook.yml b/playbook.yml index 6e18621..62c14d0 100644 --- a/playbook.yml +++ b/playbook.yml @@ -19,16 +19,36 @@ - name: Зависимости сборки и утилиты HackRF become: true ansible.builtin.apt: - name: [cmake, g++, pkg-config, git, rsync, libhackrf-dev, libusb-1.0-0-dev, libfftw3-dev, hackrf] + name: [cmake, g++, pkg-config, git, rsync, libhackrf-dev, libusb-1.0-0-dev, libfftw3-dev, hackrf, fish] state: present tags: [base] - - name: pi в группе plugdev (udev HackRF) + - name: pi в группе plugdev, login-shell fish become: true ansible.builtin.user: name: pi groups: plugdev append: true + shell: /usr/bin/fish + tags: [base] + + - name: Права udev на уже подключённый HackRF (устройство старше правил) + become: true + ansible.builtin.shell: | + bad=0 + for d in /sys/bus/usb/devices/*; do + [ -f "$d/idVendor" ] || continue + case "$(cat "$d/idVendor"):$(cat "$d/idProduct")" in 1d50:6089|1d50:604b) ;; *) continue;; esac + node=/dev/bus/usb/$(printf %03d "$(cat "$d/busnum")")/$(printf %03d "$(cat "$d/devnum")") + [ "$(stat -c %G "$node")" = plugdev ] || bad=1 + done + if [ "$bad" = 1 ]; then + udevadm control --reload-rules && udevadm trigger --subsystem-match=usb && echo FIXED + else + echo OK + fi + register: usb + changed_when: "'FIXED' in usb.stdout" tags: [base] - name: Имя узла diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..5ba4d85 --- /dev/null +++ b/run.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# run.sh [аргументы ansible-playbook] примеры: +# ./run.sh весь парк, все теги +# ./run.sh --tags base -l node106 +# ./run.sh --check --diff сухой прогон +set -e +cd "$(dirname "$0")" +[ -f keys/gitea_deploy ] || { echo "[!] нет keys/gitea_deploy -- запустите scripts/gen-key.sh"; exit 1; } +exec ansible-playbook playbook.yml "$@"