---
- hosts: radon.n39.eu
  become: true

  vars:
    ansible_python_interpreter: /usr/bin/python3

    mosquitto_image: eclipse-mosquitto:2.0.14
    mosquitto_data: /srv/data/mosquitto

  roles:
    - role: docker_setup
      vars:
        docker_data_root: "/srv/docker"

  tasks:
    - name: Ensure the mosquitto directories exist
      file:
        path: "{{ item }}"
        state: directory
      with_items:
        - "{{ mosquitto_data }}/config"
        - "{{ mosquitto_data }}/data"
        - "{{ mosquitto_data }}/log"

    - name: Make sure mosquitto config is there
      template:
        src: "templates/mosquitto.conf.j2"
        dest: "{{ mosquitto_data }}/config/mosquitto.conf"
      notify: restart mosquitto

    - name: Ensure mosquitto is running
      docker_container:
        name: mosquitto
        image: "{{ mosquitto_image }}"
        pull: true
        state: started
        ports:
          - 1883:1883
          - 9001:9001
        volumes:
          - "{{ mosquitto_data }}/config:/mosquitto/config"
          - "{{ mosquitto_data }}/data:/mosquitto/data"
          - "{{ mosquitto_data }}/log:/mosquitto/log"
        detach: yes
        keep_volumes: yes
        restart_policy: unless-stopped

  handlers:
    - name: restart mosquitto
      docker_container:
        name: mosquitto
        state: started
        restart: yes