From 6617b980d96761aea091d525a89227fb08e731b6 Mon Sep 17 00:00:00 2001 From: Chris Targett Date: Mon, 21 Oct 2024 17:39:22 +1300 Subject: [PATCH] Added mosquitto server to ansible playbook --- src/ansible/files/mosquitto/mosquitto.conf | 3 ++ src/ansible/files/mosquitto/passwd | 0 src/ansible/inventory.yaml | 6 ++- src/ansible/playbook.yaml | 51 +++++++++++++++++++++- 4 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 src/ansible/files/mosquitto/mosquitto.conf create mode 100644 src/ansible/files/mosquitto/passwd diff --git a/src/ansible/files/mosquitto/mosquitto.conf b/src/ansible/files/mosquitto/mosquitto.conf new file mode 100644 index 0000000..8737079 --- /dev/null +++ b/src/ansible/files/mosquitto/mosquitto.conf @@ -0,0 +1,3 @@ +listener 1883 0.0.0.0 +allow_anonymous false +password_file /mosquitto/config/passwd diff --git a/src/ansible/files/mosquitto/passwd b/src/ansible/files/mosquitto/passwd new file mode 100644 index 0000000..e69de29 diff --git a/src/ansible/inventory.yaml b/src/ansible/inventory.yaml index e9f4ee5..b2b8d02 100644 --- a/src/ansible/inventory.yaml +++ b/src/ansible/inventory.yaml @@ -1,4 +1,8 @@ webservers: hosts: srv501663.hstgr.cloud: - ansible_user: root \ No newline at end of file + ansible_user: root + +mosquitto: + children: + webservers: \ No newline at end of file diff --git a/src/ansible/playbook.yaml b/src/ansible/playbook.yaml index c889494..9e3b464 100644 --- a/src/ansible/playbook.yaml +++ b/src/ansible/playbook.yaml @@ -2,10 +2,11 @@ - name: Docker hosts: - webservers + - mosquitto roles: # - geerlingguy.docker -- name: Setup +- name: Webserver-Setup hosts: - webservers tasks: @@ -78,4 +79,50 @@ SECRET_KEY_FILE: "/etc/SECRET_KEY" STATIC_ROOT: "/data/static" MEDIA_ROOT: "/data/media" - MEDIA_URL: "/media/" \ No newline at end of file + MEDIA_URL: "/media/" + +- name: Mosquitto + hosts: + - mosquitto + tasks: + - name: Mosquitto Directory + ansible.builtin.file: + path: "{{ item }}" + state: directory + mode: 0700 + with_items: + - /etc/mosquitto + + - name: Mosquitto Config + ansible.builtin.copy: + src: mosquitto/mosquitto.conf + dest: /etc/mosquitto/mosquitto.conf + + - name: Mosquitto Passwords + community.docker.docker_container: + name: mqtt-passwd + image: eclipse-mosquitto:latest + detach: false + command: "mosquitto_passwd -b /mosquitto/config/passwd {{ item.key }} {{ item.value }}" + volumes: + - "/etc/mosquitto/passwd:/mosquitto/config/passwd" + no_log: true + loop: "{{ mosquitto_users|dict2items }}" + vars: + mosquitto_users: + gymkhana: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 64343437653430373430303264633266303333656437636330346538333039363332313639356266 + 6165393664646332303062343464653238616634353733340a363832633936383639396234303366 + 63636362393437653834383564396136386337366362383066633864396131323564346436346365 + 3130313466383865390a656231626331633835616530663234353739613731343935363062393164 + 37623366643835333531393434666432623365666536393164363363646533386666 + + - name: Run Mosquitto + community.docker.docker_container: + name: mqtt + image: eclipse-mosquitto:latest + volumes: + - "/etc/mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.config" + - "/etc/mosquitto/passwd:/mosquitto/config/passwd" +