r/mosquitto: Support persistence

Mosquitto can save retained messages, persistent clients, etc. to the
filesystem and restore them at startup.  This allows state to be
maintained even after the process restarts.
This commit is contained in:
2022-05-29 11:25:25 -05:00
parent 24228953b0
commit e7534d36cf
2 changed files with 41 additions and 0 deletions

View File

@@ -5,6 +5,17 @@
tags:
- install
- name: ensure mosquitto persistence directory exists
file:
path: '{{ mosquitto_persistence_location }}'
mode: u=rwx,go=
owner: mosquitto
group: mosquitto
state: directory
when: mosquitto_persistence_location|d(none) is not none
tags:
- datadir
- name: ensure mosquitto certificate is installed
copy:
src: certs/mosquitto/{{ inventory_hostname }}.cer
@@ -15,6 +26,8 @@
notify:
- restart mosquitto
when: mosquitto_certfile is defined
tags:
- cert
- name: ensure mosquitto private key is installed
copy:
src: certs/mosquitto/{{ inventory_hostname }}.key
@@ -26,6 +39,8 @@
notify:
- restart mosquitto
when: mosquitto_keyfile is defined
tags:
- cert
- name: ensure mosquitto is configured
template:
@@ -34,6 +49,8 @@
mode: '0644'
notify:
- restart mosquitto
tags:
- mosquitto-config
- meta: flush_handlers
@@ -41,7 +58,11 @@
service:
name: mosquitto
enabled: true
tags:
- service
- name: ensure mosquitto is running
service:
name: mosquitto
state: started
tags:
- service

View File

@@ -405,31 +405,51 @@ listener {{ listener.port }} {{ listener.address|d('') }}
# autosave_on_changes.
# Note that writing of the persistence database can be forced by
# sending mosquitto a SIGUSR1 signal.
{% if mosquitto_autosave_interval|d(none) is not none %}
autosave_interval {{ mosquitto_autosave_interval }}
{% else %}
#autosave_interval 1800
{% endif %}
# If true, mosquitto will count the number of subscription changes, retained
# messages received and queued messages and if the total exceeds
# autosave_interval then the in-memory database will be saved to disk.
# If false, mosquitto will save the in-memory database to disk by treating
# autosave_interval as a time in seconds.
{% if mosquitto_autosave_on_changes|d(none) is not none %}
autosave_on_changes {{ mosquitto_autosave_on_changes|bool|string|lower }}
{% else %}
#autosave_on_changes false
{% endif %}
# Save persistent message data to disk (true/false).
# This saves information about all messages, including
# subscriptions, currently in-flight messages and retained
# messages.
# retained_persistence is a synonym for this option.
{% if mosquitto_persistence|d(none) is not none %}
persistence {{ mosquitto_persistence|bool|string|lower }}
{% else %}
#persistence false
{% endif %}
# The filename to use for the persistent database, not including
# the path.
{% if mosquitto_persistence_file|d(none) is not none %}
persistence_file {{ mosquitto_persistence_file }}
{% else %}
#persistence_file mosquitto.db
{% endif %}
# Location for persistent database.
# Default is an empty string (current directory).
# Set to e.g. /var/lib/mosquitto if running as a proper service on Linux or
# similar.
{% if mosquitto_persistence_location|d(none) is not none %}
persistence_location {{ mosquitto_persistence_location }}
{% else %}
#persistence_location
{% endif %}
# =================================================================