From 38824afd629ff0f1b5326377ca7d3b06bcdec56f Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Tue, 12 Dec 2023 10:49:22 +0100 Subject: [PATCH] Initial commit --- files/matterbridge.init | 13 +++++++++ handlers/main.yml | 5 ++++ meta/main.yml | 18 ++++++++++++ tasks/main.yml | 50 ++++++++++++++++++++++++++++++++++ templates/matterbridge.conf.j2 | 1 + 5 files changed, 87 insertions(+) create mode 100644 files/matterbridge.init create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 templates/matterbridge.conf.j2 diff --git a/files/matterbridge.init b/files/matterbridge.init new file mode 100644 index 0000000..854d632 --- /dev/null +++ b/files/matterbridge.init @@ -0,0 +1,13 @@ +#!/sbin/openrc-run + +PNAME=${SVCNAME#*.} + +name="matterbridge ${PNAME}" +command="/usr/bin/matterbridge" +command_args="-conf ${CONFIG_FILE}" +pidfile="/var/run/${SVCNAME}.pid" +start_stop_daemon_args="--stdout /var/log/matterbridge/${SVCNAME}.log --stderr /var/log/matterbridge/${SVCNAME}.log -b -m -p $pidfile -u nobody -g nogroup" + +depend() { + after net +} \ No newline at end of file diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..b523e51 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: reload matterbridge + service: + name: "matterbridge{% if instance_name is defined %}.{{ instance_name }}{% endif %}" + state: restarted diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..b987cec --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,18 @@ +--- + +dependencies: [] + +galaxy_info: + role_name: matterbridge + author: 'Pierre-Olivier Mercier ' + description: Install and configure matterbridge + license: GPL-3.0-or-later + min_ansible_version: 2.9 + platforms: + - name: Alpine + versions: + - all + - name: Debian + versions: + - all + galaxy_tags: [] diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..2fca1f9 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,50 @@ +--- +- name: "download 42wim/matterbridge-v{{ version }}" + get_url: + url: "https://github.com/42wim/matterbridge/releases/download/v{{ version }}/matterbridge-{{ version }}-linux-{% if ansible_architecture == 'armv7l' %}armv7{% elif ansible_architecture == 'aarch64' %}arm64{% else %}{{ ansible_architecture }}{% endif %}" + dest: "/usr/bin/matterbridge" + mode: 0551 + notify: + - reload matterbridge + +- name: configure matterbridge + copy: + content: "{{ matterbridge_configuration }}" + dest: "/etc/matterbridge{% if instance_name %}-{{ instance_name }}{% endif %}.toml" + notify: + - reload matterbridge + +- name: ensure init script is present + copy: + src: matterbridge.init + dest: /etc/init.d/matterbridge + mode: 0755 + +- name: ensure init script is present + file: + src: matterbridge + path: "/etc/init.d/matterbridge.{{ instance_name }}" + state: link + mode: 0755 + when: "instance_name is defined" + +- name: ensure init config is present + template: + src: matterbridge.conf.j2 + dest: "/etc/conf.d/matterbridge{% if instance_name %}.{{ instance_name }}{% endif %}" + notify: + - reload matterbridge + +- name: ensure matterbridge is running + service: + name: matterbridge + enabled: yes + state: started + when: instance_name is not defined + +- name: ensure matterbridge is running + service: + name: "matterbridge.{{ instance_name }}" + enabled: yes + state: started + when: instance_name is defined diff --git a/templates/matterbridge.conf.j2 b/templates/matterbridge.conf.j2 new file mode 100644 index 0000000..492c054 --- /dev/null +++ b/templates/matterbridge.conf.j2 @@ -0,0 +1 @@ +CONFIG_FILE="/etc/matterbridge{% if instance_name %}-{{ instance_name }}{% endif %}.toml" \ No newline at end of file