- name: Extract signalytic-ap package ansible.builtin.unarchive: src: packages/signalytic-ap-manager-5.v5.tar.bz2 dest: /tmp remote_src: false become: true - name: Find the top-level extracted directory ansible.builtin.find: paths: /tmp file_type: directory recurse: false patterns: "signalytic-ap-manager-*" register: extracted_dir become: true - name: Fail if the archive layout is unexpected ansible.builtin.assert: that: - extracted_dir.matched == 1 fail_msg: >- Expected exactly one signalytic-ap-manager-* directory in /tmp, found {{ extracted_dir.matched }}. Check the archive structure. - name: Run the install script from the top-level directory ansible.builtin.command: cmd: ./install.sh chdir: "{{ extracted_dir.files[0].path }}" become: true