- hosts: datacenter name: Install mqtt_srv ignore_unreachable: false ignore_errors: true vars: dest_folder: "/share/Public/ans_repo" 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: include vault ansible.builtin.include_vars: file: ../jaydee.yml - name: Delete content & directory ansible.builtin.file: state: absent path: "{{ dest_folder }}" become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" - name: GIT pull become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" tags: - git_pull git: repo: "https://{{ git_user | urlencode }}:{{ git_password_mqtt | urlencode }}@gitlab.sectorq.eu/jaydee/mqtt_srv.git" dest: "{{ dest_folder }}" update: yes clone: yes version: main - debug: msg: "{{ inventory_hostname }}" - name: Upload service config ansible.builtin.copy: src: "{{ dest_folder }}/mqtt_srv.service" dest: /etc/systemd/system/mqtt_srv.service remote_src: true when: inventory_hostname != 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" - name: Upload service script ansible.builtin.copy: src: "{{ dest_folder }}/mqtt_srv.py" dest: /usr/bin/mqtt_srv.py mode: '755' owner: root remote_src: true when: inventory_hostname != 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" - name: Upload service script config ansible.builtin.copy: src: "{{ dest_folder }}/mqtt_srv.cfg" dest: /etc/mqtt_srv/mqtt_srv.cfg mode: '755' owner: root remote_src: true when: inventory_hostname != 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' 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: "{{ dest_folder }}/mqtt_srv.sh" dest: /etc/init.d/ mode: '755' owner: admin remote_src: true when: inventory_hostname == 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" - debug: msg: "{{ dest_folder }}" - name: Upload service script2 ansible.builtin.copy: src: "{{ dest_folder }}/mqtt_srv.py" dest: /usr/bin/mqtt_srv.py mode: '755' owner: admin remote_src: true when: inventory_hostname == 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' 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 != 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" - name: Just force systemd to reread configs (2.4 and above) ansible.builtin.systemd: daemon_reload: true when: inventory_hostname != 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" - name: Restart mqtt_srv service ansible.builtin.service: name: mqtt_srv.service state: restarted enabled: true when: inventory_hostname != 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' 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 == 'nas.home.lan' become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}"