Add mosquitto role and add playbook to deploy MQTT broker on automation.z9

This commit is contained in:
yuri 2022-12-01 21:29:40 +01:00
parent 59dc7a1d7d
commit 7a93546616
No known key found for this signature in database
GPG key ID: E646779AC54AEC64
8 changed files with 101 additions and 0 deletions

View file

@ -0,0 +1,4 @@
mosquitto__mosquitto_conf_content: "{{ lookup('ansible.builtin.file', 'configs/automation/mosquitto/mosquitto.conf') }}"
mosquitto__configs:
- name: winkekatz
content: "{{ lookup('ansible.builtin.file', 'configs/automation/mosquitto/winkekatz.conf') }}"

View file

@ -0,0 +1,6 @@
---
- name: Deploy mosquitto MQTT broker on automation.z9
become: true
hosts: automation
roles:
- mosquitto

View file

@ -0,0 +1,16 @@
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
per_listener_settings false
listener 1883
allow_anonymous true
pid_file /run/mosquitto/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d

View file

@ -0,0 +1,10 @@
connection winkekatz
address mqtt.winkekatze24.de
topic winkekatze/# both
bridge_protocol_version mqttv311
topic "" in 2 devices/katz9/eyecolor/eyecolor/set jimmykater/eye/set
topic "" in 2 devices/katz9/command/wink/set winkekatze/allcats
topic "" out 2 devices/katz9/command/status katz9/status
topic "" out 2 devices/katz9/$online katz9/connected
topic "" in 2 devices/katz9/command/wink/set katz9/command

View file

@ -0,0 +1,5 @@
---
- name: Restart mosquitto
ansible.builtin.systemd:
service: mosquitto.service
state: restarted

View file

@ -0,0 +1,26 @@
---
argument_specs:
main:
options:
mosquitto__mosquitto_conf_content:
description: The content of the main mosquitto configuration file.
type: str
required: true
mosquitto__configs:
description: A list of additional mosquitto configurations.
type: list
elements: dict
required: false
options:
name:
description: >-
The name of the configuration file, where the configuration should
be deployed to. The file will be placed under `/etc/mosquitto/conf.d` and
`.conf` will be appended to the given name. So in the end the path
will be like this: `/etc/mosquitto/conf.d/\{\ name \}\}.conf`.
type: str
required: true
content:
description: The content of the configuration.
type: str
required: true

View file

@ -0,0 +1,8 @@
---
dependencies:
- role: distribution_check
vars:
distribution_check__supported_distributions:
- name: Debian
versions:
- "11"

View file

@ -0,0 +1,26 @@
---
- name: Ensure mosquitto is installed
ansible.builtin.apt:
name: mosquitto
- name: Ensure main configuraton file is deployed
ansible.builtin.copy:
content: "{{ mosquitto__mosquitto_conf_content }}"
dest: /etc/mosquitto/mosquitto.conf
mode: 0644
owner: root
group: root
notify: Restart mosquitto
- name: Ensure all additional configuraton files are deployed
ansible.builtin.copy:
content: "{{ item.content }}"
dest: /etc/mosquitto/conf.d/{{ item.name }}.conf
mode: 0644
owner: root
group: root
loop: "{{ mosquitto__configs }}"
notify: Restart mosquitto
- name: Ensure mosquitto service is enabled and started
ansible.builtin.systemd:
service: mosquitto.service
enabled: true
state: started