Added roles mqtt/application and mqtt/user

dehydrated
Felix Stupp 4 years ago
parent 7c57dc4325
commit 0b69a41ebc
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -0,0 +1,17 @@
---
configuration_directory: "/etc/mosquitto"
configuration_file: "{{ configuration_directory }}/conf.d/0_ansible_main.conf"
environment_directory: "{{ global_configuration_environment_directory }}/mosquitto"
environment_link_name: "conf"
acl_file_name: "acl"
acl_file: "{{ configuration_directory }}/{{ acl_file_name }}"
auth_file_name: "auth"
auth_file: "{{ configuration_directory }}/{{ auth_file_name }}"
admin_username: "root"
admin_password: "{{ lookup('password', 'credentials/' + inventory_hostname + '/mqtt/root length=80') }}"
acl_directives: ""

@ -0,0 +1,19 @@
---
- name: reconfigure mosquitto acl
make:
chdir: "{{ environment_directory }}"
target: "{{ acl_file_name }}"
notify: restart mosquitto
- name: reconfigure mosquitto auth
make:
chdir: "{{ environment_directory }}"
target: "{{ auth_file_name }}"
notify: restart mosquitto
- name: restart mosquitto
systemd:
enabled: yes
name: mosquitto
state: restarted

@ -0,0 +1,5 @@
---
allow_duplicates: no
dependencies:

@ -0,0 +1,50 @@
---
- name: Install required packages
apt:
state: present
name:
- mosquitto
- name: Create configuration environment directory
file:
state: directory
path: "{{ environment_directory }}"
owner: root
group: root
mode: "u=rwx,g=rx,o=rx"
- name: Configure makefile for environment directory
template:
src: mosquitto.makefile
dest: "{{ environment_directory }}/makefile"
owner: root
group: root
mode: "u=rw,g=r,o=r"
- name: Store acl main file
template:
src: main.acl
dest: "{{ environment_directory }}/0_main.acl"
owner: root
group: root
mode: "u=rw,g=r,o=r"
notifiy: reconfigure mosquitto acl
- name: Store auth main file
command: >-
mosquitto_passwd
-b
{{ environment_directory | quote }}/0_main.auth
{{ admin_user | quote }}
{{ admin_pass | quote }}
notifiy: reconfigure mosquitto auth
- name: Configure mosquitto configuration
template:
src: "main.conf"
dest: "{{ mosquitto_configuration_directory }}/mosquitto.conf"
owner: "root"
group: "root"
mode: "u=rw,g=r,o=r"
notifiy: restart mosquitto

@ -0,0 +1,4 @@
{{ acl_directives }}
user root
topic readwrite #

@ -0,0 +1,11 @@
# Authentication
allow_anonymous false
acl_file TODO
use_username_as_clientid true
# Socket
protocol mqtt
port 8883
# TLS
require_certificate false

@ -0,0 +1,25 @@
dest:={{ environment_link_name }}
# acl file generation
acl_files:=$(wildcard *.acl)
acl_file_name:={{ acl_file_name }}
acl_file:=${dest}/${acl_file_name}
.PHONY: ${acl_file_name}
${acl_file_name}: ${acl_file}
${acl_file}: ${acl_files}
cat $^ > "$@";
# auth file generation
auth_files:=$(wildcard *.auth)
auth_file_name:={{ auth_file_name }}
auth_file:=${dest}/${auth_file_name}
.PHONY: ${auth_file_name}
${auth_file_name}: ${auth_file}
${auth_file}: ${auth_files}
cat $^ > "$@";

@ -0,0 +1,8 @@
---
# user:
pass: "{{ lookup('password', 'credentials/' + inventory_hostname + '/mqtt/' + username + ' length=80') }}"
read_topics: []
write_topics: []
readwrite_topics: []

@ -0,0 +1,6 @@
---
allow_duplicates: yes
dependencies:
- mqtt/application

@ -0,0 +1,19 @@
---
- name: Store acl file for user
template:
src: user.acl
dest: "{{ environment_directory }}/{{ user }}.acl"
owner: root
group: root
mode: "u=rw,g=r,o=r"
notify: reconfigure mosquitto acl
- name: Store auth file for user
command: >-
mosquitto_passwd
-b
{{ environment_directory | quote }}/{{ user | quote }}.auth
{{ user | quote }}
{{ pass | quote }}
notifiy: reconfigure mosquitto auth

@ -0,0 +1,13 @@
user {{ user }}
{% for topic in read_topics %}
topic read {{ topic }}
{% endfor %}
{% for topic in write_topics %}
topic write {{ topic }}
{% endfor %}
{% for topic in readwrite_topics %}
topic readwrite {{ topic }}
{% endfor %}
Loading…
Cancel
Save