From c76cdf1f20ba2d75a78339d9d3e756d297979a73 Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Wed, 27 Jun 2018 08:52:11 +0000 Subject: [PATCH] Add Mosquitto pub-sub broker to IIAB --- roles/6-generic-apps/tasks/main.yml | 6 +++ roles/mosquitto/README.rst | 3 ++ roles/mosquitto/defaults/main.yml | 4 ++ roles/mosquitto/tasks/main.yml | 50 ++++++++++++++++++++ roles/mosquitto/templates/websockets.conf.j2 | 3 ++ 5 files changed, 66 insertions(+) create mode 100644 roles/mosquitto/README.rst create mode 100644 roles/mosquitto/defaults/main.yml create mode 100644 roles/mosquitto/tasks/main.yml create mode 100644 roles/mosquitto/templates/websockets.conf.j2 diff --git a/roles/6-generic-apps/tasks/main.yml b/roles/6-generic-apps/tasks/main.yml index b7fe93cc2..77946a371 100644 --- a/roles/6-generic-apps/tasks/main.yml +++ b/roles/6-generic-apps/tasks/main.yml @@ -51,6 +51,12 @@ when: wordpress_install tags: wordpress +- name: MOSQUITTO + include_role: + name: mosquitto + when: mosquitto_install + tags: mosquitto + - name: Recording STAGE 6 HAS COMPLETED ==================== lineinfile: dest: "{{ iiab_env_file }}" diff --git a/roles/mosquitto/README.rst b/roles/mosquitto/README.rst new file mode 100644 index 000000000..ae9d5ca9f --- /dev/null +++ b/roles/mosquitto/README.rst @@ -0,0 +1,3 @@ +Adds the mosquitto pub-sub broker to the iiab. + +Roughly follows this guide: https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-ubuntu-16-04 diff --git a/roles/mosquitto/defaults/main.yml b/roles/mosquitto/defaults/main.yml new file mode 100644 index 000000000..bc4baf2a2 --- /dev/null +++ b/roles/mosquitto/defaults/main.yml @@ -0,0 +1,4 @@ +mosquitto_install: True +mosquitto_enabled: False +mosquitto_user: admin +mosquitto_password: g0adm1n diff --git a/roles/mosquitto/tasks/main.yml b/roles/mosquitto/tasks/main.yml new file mode 100644 index 000000000..79599b8c6 --- /dev/null +++ b/roles/mosquitto/tasks/main.yml @@ -0,0 +1,50 @@ +- name: Install Mosquitto + package: name={{ item }} + state=present + with_items: + - mosquitto + - mosquitto-clients + when: mosquitto_install + tags: download + +- name: Disable mosquitto + service: + name: mosquitto + enabled: no + +- name: Stop mosquitto + service: + name: mosquitto + state: stopped + +- name: Create mosquitto passwd file + file: + path: /etc/mosquitto/passwd + state: touch + mode: "u=rw,g=r,o=r" + +- name: Create mosquitto username/password + shell: mosquitto_passwd -b /etc/mosquitto/passwd "{{ mosquitto_user }}" "{{ mosquitto_password }}" + +- name: Create mosquitto config file + template: + backup: yes + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: root + group: root + mode: "{{ item.mode }}" + with_items: + - { src: 'websockets.conf.j2' , dest: '/etc/mosquitto/conf.d/websockets.conf', mode: '0755' } + +- name: Enable mosquitto + service: + name: mosquitto + enabled: yes + when: mosquitto_enabled + +- name: Start mosquitto + service: + name: mosquitto + state: started + when: mosquitto_enabled diff --git a/roles/mosquitto/templates/websockets.conf.j2 b/roles/mosquitto/templates/websockets.conf.j2 new file mode 100644 index 000000000..16e3f7654 --- /dev/null +++ b/roles/mosquitto/templates/websockets.conf.j2 @@ -0,0 +1,3 @@ +listener 1883 +allow_anonymous false +password_file /etc/mosquitto/passwd