Add mosquitto role and add playbook to deploy MQTT broker on automation.z9
This commit is contained in:
parent
59dc7a1d7d
commit
7a93546616
8 changed files with 101 additions and 0 deletions
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