Add mosquitto role and add playbook to deploy MQTT broker on automation.z9
This commit is contained in:
parent
59dc7a1d7d
commit
7a93546616
4
inventories/thinkcccentre/host_vars/automation.yml
Normal file
4
inventories/thinkcccentre/host_vars/automation.yml
Normal 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') }}"
|
6
playbooks/deploy_automation.yml
Normal file
6
playbooks/deploy_automation.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
- name: Deploy mosquitto MQTT broker on automation.z9
|
||||||
|
become: true
|
||||||
|
hosts: automation
|
||||||
|
roles:
|
||||||
|
- mosquitto
|
16
playbooks/files/configs/automation/mosquitto/mosquitto.conf
Normal file
16
playbooks/files/configs/automation/mosquitto/mosquitto.conf
Normal 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
|
10
playbooks/files/configs/automation/mosquitto/winkekatz.conf
Normal file
10
playbooks/files/configs/automation/mosquitto/winkekatz.conf
Normal 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
|
5
playbooks/roles/mosquitto/handlers/main.yml
Normal file
5
playbooks/roles/mosquitto/handlers/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
- name: Restart mosquitto
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
service: mosquitto.service
|
||||||
|
state: restarted
|
26
playbooks/roles/mosquitto/meta/argument_specs.yml
Normal file
26
playbooks/roles/mosquitto/meta/argument_specs.yml
Normal 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
|
8
playbooks/roles/mosquitto/meta/main.yml
Normal file
8
playbooks/roles/mosquitto/meta/main.yml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- role: distribution_check
|
||||||
|
vars:
|
||||||
|
distribution_check__supported_distributions:
|
||||||
|
- name: Debian
|
||||||
|
versions:
|
||||||
|
- "11"
|
26
playbooks/roles/mosquitto/tasks/main.yml
Normal file
26
playbooks/roles/mosquitto/tasks/main.yml
Normal 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
|
Loading…
Reference in a new issue