- name: Провижнинг приёмников пеленгации hosts: all tasks: - name: Обновить кэш apt (не считается изменением) become: true ansible.builtin.apt: update_cache: true cache_valid_time: 3600 changed_when: false tags: [base] - name: apt full-upgrade become: true ansible.builtin.apt: upgrade: full tags: [base] - name: Зависимости сборки и утилиты HackRF become: true ansible.builtin.apt: name: [cmake, g++, pkg-config, git, rsync, libhackrf-dev, libusb-1.0-0-dev, libfftw3-dev, hackrf] state: present tags: [base] - name: pi в группе plugdev (udev HackRF) become: true ansible.builtin.user: name: pi groups: plugdev append: true tags: [base] - name: Имя узла become: true ansible.builtin.hostname: name: "{{ inventory_hostname }}" tags: [hostname] - name: Имя узла в /etc/hosts become: true ansible.builtin.lineinfile: path: /etc/hosts regexp: '^127\.0\.1\.1' line: "127.0.1.1\t{{ inventory_hostname }}" tags: [hostname] - name: Deploy-ключ есть в keys/ delegate_to: localhost run_once: true ansible.builtin.stat: path: "{{ playbook_dir }}/keys/gitea_deploy" register: deploy_key tags: [key] - name: Ключа нет run_once: true ansible.builtin.fail: msg: "[!] нет keys/gitea_deploy -- запустите scripts/gen-key.sh" when: not deploy_key.stat.exists tags: [key] - name: ~/.ssh ansible.builtin.file: path: ~/.ssh state: directory mode: "0700" tags: [key] - name: Приватный deploy-ключ ansible.builtin.copy: src: "{{ playbook_dir }}/keys/gitea_deploy" dest: ~/.ssh/gitea_deploy mode: "0600" tags: [key] - name: ssh config для Gitea ansible.builtin.blockinfile: path: ~/.ssh/config create: true mode: "0600" marker: "# {mark} fleet gitea" block: | Host {{ gitea_host }} Port {{ gitea_port }} User git IdentityFile ~/.ssh/gitea_deploy IdentitiesOnly yes StrictHostKeyChecking accept-new tags: [key] - name: Локальные правки в репо (rsync-разработка)? ansible.builtin.command: git status --porcelain args: chdir: ~/hackrf-scanner register: dirty failed_when: false changed_when: false tags: [repo] - name: Stash локальных правок перед обновлением ansible.builtin.command: git stash push -m fleet-provision args: chdir: ~/hackrf-scanner when: dirty.rc == 0 and dirty.stdout != "" tags: [repo] - name: Репозиторий hackrf-scanner ansible.builtin.git: repo: "{{ scanner_repo }}" dest: ~/hackrf-scanner version: "{{ scanner_branch }}" update: true force: true register: repo tags: [repo] - name: Сборка ansible.builtin.shell: | cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo >/dev/null cmake --build build -j4 args: chdir: ~/hackrf-scanner register: build changed_when: "'Building CXX' in build.stdout or 'Linking' in build.stdout" tags: [build]