- hosts: mqtt_srv name: Install mqtt_srv ignore_unreachable: false ignore_errors: true tasks: - name: Install python3-pip ansible.builtin.apt: name: - python3-pip update_cache: yes when: inventory_hostname not in groups['nas'] and inventory_hostname not in groups['router'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Upload service config ansible.builtin.copy: src: services/mqtt_srv.service dest: /etc/systemd/system/ when: inventory_hostname not in groups['nas'] and inventory_hostname not in groups['router'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Upload service script ansible.builtin.copy: src: scripts/mqtt_srv.py dest: /usr/bin/ mode: '755' owner: root when: inventory_hostname not in groups['nas'] and inventory_hostname not in groups['router'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Upload service script1 ansible.builtin.copy: src: scripts/mqtt_srv.sh dest: /jffs/scripts/mqtt_srv/ mode: '755' owner: admin when: inventory_hostname in groups['router'] become: false - name: Upload service script ansible.builtin.copy: src: scripts/mqtt_srv.py dest: /jffs/scripts/mqtt_srv/ mode: '755' owner: admin when: inventory_hostname in groups['router'] become: false - name: Upload service script1 ansible.builtin.copy: src: scripts/mqtt_srv.sh dest: /etc/init.d/ mode: '755' owner: admin when: inventory_hostname in groups['nas'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Upload service script2 ansible.builtin.copy: src: scripts/mqtt_srv.py dest: /usr/bin/ mode: '755' owner: admin when: inventory_hostname in groups['nas'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Install bottle python package ansible.builtin.shell: pip install {{ item }} --break-system-packages loop: - paho-mqtt - getmac - ping3 - psutil - autorandr when: inventory_hostname not in groups['nas'] and inventory_hostname not in groups['router'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Just force systemd to reread configs (2.4 and above) ansible.builtin.systemd: daemon_reload: true when: inventory_hostname not in groups['nas'] and inventory_hostname not in groups['router'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Restart mqtt_srv service ansible.builtin.service: name: mqtt_srv.service state: restarted when: inventory_hostname not in groups['nas'] and inventory_hostname not in groups['router'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Restart mqtt service ansible.builtin.shell: "(/etc/init.d/mqtt_srv.sh restart >/dev/null 2>&1 &)" async: 10 poll: 0 when: inventory_hostname in groups['nas'] become: "{{ 'no' if inventory_hostname in groups['nas'] else 'yes' }}" - name: Restart mqtt service ansible.builtin.shell: "(/jffs/scripts/mqtt_srv/mqtt_srv.sh restart >/dev/null 2>&1 &)" async: 10 poll: 0 when: inventory_hostname in groups['router'] become: false