# This is rpi only - name: "Install rpi bluetooth packages" package: name: - bluetooth - bluez - bluez-tools state: present - name: Create bluetooth services template: backup: no src: "{{ item.src }}" dest: "{{ item.dest }}" owner: root group: root mode: 0644 with_items: - { src: 'bt-agent.service.j2', dest: '/etc/systemd/system/bt-agent.service' } - { src: 'bt-pan.service.j2', dest: '/etc/systemd/system/bt-pan.service' } - { src: 'bt-term.service.j2', dest: '/etc/systemd/system/bt-term.service' } - { src: 'network.conf.j2', dest: '/etc/bluetooth/network.conf' } - name: Create bluetooth utility scripts template: backup: no src: "{{ item.src }}" dest: "{{ item.dest }}" owner: root group: root mode: 0755 with_items: - { src: 'iiab-bt-pan-on.j2', dest: '/usr/bin/iiab-bt-pan-on' } - { src: 'iiab-bt-pan-off.j2', dest: '/usr/bin/iiab-bt-pan-off' } - { src: 'iiab-bt-pan-discoverable-on.j2', dest: '/usr/bin/iiab-bt-pan-discoverable-on' } - { src: 'iiab-bt-term-on.j2', dest: '/usr/bin/iiab-bt-term-on' } - { src: 'iiab-bt-term-off.j2', dest: '/usr/bin/iiab-bt-term-off' } # Bluetooth service needs /usr/lib/bluetooth/bluetoothd -C --noplugin=sap # Copy and patch it - name: Copy the bluetooth service template: dest: /etc/systemd/system/bluetooth.service src: /lib/systemd/system/bluetooth.service - name: Add -C --noplugin=sap to execStart of bluetooth service lineinfile: path: /etc/systemd/system/bluetooth.service regexp: '^ExecStart=/usr/lib/bluetooth/bluetoothd' line: 'ExecStart=/usr/lib/bluetooth/bluetoothd -C --noplugin=sap' - name: Set discoverable not to timeout lineinfile: path: /etc/bluetooth/main.conf regexp: '^#DiscoverableTimeout' line: 'DiscoverableTimeout = 0' - name: Enable & Restart 'bt-agent' service systemd: daemon_reload: yes name: bluetooth enabled: yes state: restarted # enable or disable bt-agent - name: Enable & Restart 'bt-agent' service systemd: daemon_reload: yes name: bt-agent enabled: yes state: restarted when: bluetooth_enabled or bluetooth_term_enabled - name: Disable 'bt-agent' service systemd: daemon_reload: yes name: bt-agent enabled: no state: stopped when: not bluetooth_enabled and not bluetooth_term_enabled # enable or disable bt-pan - name: Enable & Restart 'bt-pan' service systemd: daemon_reload: yes name: bt-pan enabled: yes state: restarted when: bluetooth_enabled | bool - name: Disable 'bt-pan' service systemd: daemon_reload: yes name: bt-pan enabled: no state: stopped when: not bluetooth_enabled | bool # enable or disable bt-term - name: Enable & Restart 'bt-term' service systemd: daemon_reload: yes name: bt-term enabled: yes state: restarted when: bluetooth_term_enabled | bool - name: Disable 'bt-term' service systemd: daemon_reload: yes name: bt-term enabled: no state: stopped when: not bluetooth_term_enabled | bool - name: Add 'bluetooth' variable values to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" section: bluetooth option: "{{ item.option }}" value: "{{ item.value }}" with_items: - option: name value: Bluetooth - option: description value: '"Bluetooth services for pan and terminal."' - option: bluetooth_enabled value: "{{ bluetooth_enabled }}" - option: bluetooth_term_enabled value: "{{ bluetooth_term_enabled }}"