ansible/playbooks/install_mqtt_srv.yml
2024-07-09 00:50:40 +02:00

109 lines
3.5 KiB
YAML

- hosts: datacenter
name: Install mqtt_srv
ignore_unreachable: true
tasks:
- name: Install python3-pip
ansible.builtin.apt:
name:
- python3-pip
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','router'] 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