diff --git a/defaults/main.yml b/defaults/main.yml
index bf819b1..00c280a 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -85,6 +85,7 @@ murmur_ice_message_size_max: 65536
umurmur_enabled: yes
umurmur_domain: "{{ mumble_web_domain }}"
umurmur_max_bandwidth: 48000
+umurmur_max_users: 100
umurmur_server_password: ""
umurmur_channels:
- name: Root
@@ -99,6 +100,8 @@ umurmur_channels:
description: Silent channel
silent: yes
position: 1
+umurmur_default_channel: Welcome
+umurmur_welcome_text: "Welcome on the {{ inventory_hostname }} Mumble server!"
umurmur_channel_links:
- source: "{{ umurmur_default_channel }}"
destinations: >-
@@ -112,5 +115,4 @@ umurmur_ssl_group: "{{ acme_ssl_group }}"
umurmur_certificate: "{{ acme_certs_dir }}/{{ umurmur_domain }}.d/{{ acme_enabled | ternary('fullchain', 'cert') }}.pem"
umurmur_private_key: "{{ acme_keys_dir }}/{{ umurmur_domain }}.pem"
umurmur_version: master
-umurmur_ispublic: yes
umurmur_port: 64738
diff --git a/meta/main.yml b/meta/main.yml
index 8ef7244..2c1a29d 100644
--- a/meta/main.yml
+++ b/meta/main.yml
@@ -5,7 +5,7 @@ dependencies:
- role: geerlingguy.nodejs
vars:
nodejs_install_npm_user: root
- tags: [nodejs,mumble_web]
+ tags: [never]
galaxy_info:
role_name: mumble
diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml
index 4a2ab18..16fe642 100644
--- a/molecule/default/converge.yml
+++ b/molecule/default/converge.yml
@@ -4,8 +4,10 @@
become: yes
vars:
+ mumble_web_enabled: yes
murmur_enabled: yes
- umurmur_enabled: no
+ umurmur_enabled: yes
+ umurmur_port: 64739
acme_enabled: no
roles:
diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml
index 10db698..a7c6836 100644
--- a/molecule/default/molecule.yml
+++ b/molecule/default/molecule.yml
@@ -14,12 +14,14 @@ platforms:
box: debian/buster64
<<: *hardware
interfaces:
+ # Mumble web client
- network_name: forwarded_port
guest: 80
host: 8080
- network_name: forwarded_port
guest: 443
host: 8443
+ # Murmur server
- network_name: forwarded_port
guest: 64738
host: 14738
@@ -28,16 +30,27 @@ platforms:
guest: 64738
host: 14738
protocol: tcp
+ # Umurmur server
+ - network_name: forwarded_port
+ guest: 64739
+ host: 14739
+ protocol: udp
+ - network_name: forwarded_port
+ guest: 64739
+ host: 14739
+ protocol: tcp
- name: focal-mumble-molecule
box: ubuntu/focal64
<<: *hardware
interfaces:
+ # Mumble web client
- network_name: forwarded_port
guest: 80
host: 9080
- network_name: forwarded_port
guest: 443
host: 9443
+ # Murmur server
- network_name: forwarded_port
guest: 64738
host: 24738
@@ -46,6 +59,15 @@ platforms:
guest: 64738
host: 24738
protocol: tcp
+ # Umurmur server
+ - network_name: forwarded_port
+ guest: 64739
+ host: 24739
+ protocol: udp
+ - network_name: forwarded_port
+ guest: 64739
+ host: 24739
+ protocol: tcp
provisioner:
name: ansible
config_options:
diff --git a/molecule/mumble-web/INSTALL.rst b/molecule/mumble-web/INSTALL.rst
new file mode 100644
index 0000000..0c4bf5c
--- /dev/null
+++ b/molecule/mumble-web/INSTALL.rst
@@ -0,0 +1,23 @@
+*********************************
+Vagrant driver installation guide
+*********************************
+
+Requirements
+============
+
+* Vagrant
+* Virtualbox, Parallels, VMware Fusion, VMware Workstation or VMware Desktop
+
+Install
+=======
+
+Please refer to the `Virtual environment`_ documentation for installation best
+practices. If not using a virtual environment, please consider passing the
+widely recommended `'--user' flag`_ when invoking ``pip``.
+
+.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
+.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
+
+.. code-block:: bash
+
+ $ pip install 'molecule_vagrant'
diff --git a/molecule/mumble-web/converge.yml b/molecule/mumble-web/converge.yml
new file mode 100644
index 0000000..2f3911c
--- /dev/null
+++ b/molecule/mumble-web/converge.yml
@@ -0,0 +1,13 @@
+---
+- name: Converge
+ hosts: all
+ become: yes
+
+ vars:
+ mumble_web_enabled: yes
+ murmur_enabled: yes
+ umurmur_enabled: no
+ acme_enabled: no
+
+ roles:
+ - ansible-role-mumble
\ No newline at end of file
diff --git a/molecule/mumble-web/molecule.yml b/molecule/mumble-web/molecule.yml
new file mode 100644
index 0000000..e20127c
--- /dev/null
+++ b/molecule/mumble-web/molecule.yml
@@ -0,0 +1,43 @@
+---
+.hardware: &hardware
+ memory: 1024
+ cpu: 2
+
+dependency:
+ name: galaxy
+driver:
+ name: vagrant
+ provider:
+ name: virtualbox
+platforms:
+ - name: buster-mumble-molecule
+ box: debian/buster64
+ <<: *hardware
+ interfaces:
+ # Mumble web client
+ - network_name: forwarded_port
+ guest: 80
+ host: 8080
+ - network_name: forwarded_port
+ guest: 443
+ host: 8443
+ - name: focal-mumble-molecule
+ box: ubuntu/focal64
+ <<: *hardware
+ interfaces:
+ # Mumble web client
+ - network_name: forwarded_port
+ guest: 80
+ host: 9080
+ - network_name: forwarded_port
+ guest: 443
+ host: 9443
+provisioner:
+ name: ansible
+ config_options:
+ defaults:
+ interpreter_python: /usr/bin/python3
+ ssh_connection:
+ pipelining: true
+verifier:
+ name: ansible
\ No newline at end of file
diff --git a/molecule/mumble-web/prepare.yml b/molecule/mumble-web/prepare.yml
new file mode 100644
index 0000000..3ebb94c
--- /dev/null
+++ b/molecule/mumble-web/prepare.yml
@@ -0,0 +1,14 @@
+- name: Prepare
+ hosts: all
+ become: yes
+
+ tasks:
+ - name: Update apt cache
+ apt:
+ update_cache: yes
+ cache_valid_time: 3600
+
+ - name: Install nginx package
+ package:
+ name: nginx-light
+ state: present
\ No newline at end of file
diff --git a/molecule/murmur/INSTALL.rst b/molecule/murmur/INSTALL.rst
new file mode 100644
index 0000000..0c4bf5c
--- /dev/null
+++ b/molecule/murmur/INSTALL.rst
@@ -0,0 +1,23 @@
+*********************************
+Vagrant driver installation guide
+*********************************
+
+Requirements
+============
+
+* Vagrant
+* Virtualbox, Parallels, VMware Fusion, VMware Workstation or VMware Desktop
+
+Install
+=======
+
+Please refer to the `Virtual environment`_ documentation for installation best
+practices. If not using a virtual environment, please consider passing the
+widely recommended `'--user' flag`_ when invoking ``pip``.
+
+.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
+.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
+
+.. code-block:: bash
+
+ $ pip install 'molecule_vagrant'
diff --git a/molecule/murmur/converge.yml b/molecule/murmur/converge.yml
new file mode 100644
index 0000000..da7913e
--- /dev/null
+++ b/molecule/murmur/converge.yml
@@ -0,0 +1,14 @@
+---
+- name: Converge
+ hosts: all
+ become: yes
+
+ vars:
+ mumble_web_enabled: no
+ murmur_enabled: yes
+ umurmur_enabled: no
+ umurmur_port: 64739
+ acme_enabled: no
+
+ roles:
+ - ansible-role-mumble
\ No newline at end of file
diff --git a/molecule/murmur/molecule.yml b/molecule/murmur/molecule.yml
new file mode 100644
index 0000000..811c299
--- /dev/null
+++ b/molecule/murmur/molecule.yml
@@ -0,0 +1,47 @@
+---
+.hardware: &hardware
+ memory: 1024
+ cpu: 2
+
+dependency:
+ name: galaxy
+driver:
+ name: vagrant
+ provider:
+ name: virtualbox
+platforms:
+ - name: buster-mumble-molecule
+ box: debian/buster64
+ <<: *hardware
+ interfaces:
+ # Murmur server
+ - network_name: forwarded_port
+ guest: 64738
+ host: 14738
+ protocol: udp
+ - network_name: forwarded_port
+ guest: 64738
+ host: 14738
+ protocol: tcp
+ - name: focal-mumble-molecule
+ box: ubuntu/focal64
+ <<: *hardware
+ interfaces:
+ # Murmur server
+ - network_name: forwarded_port
+ guest: 64738
+ host: 24738
+ protocol: udp
+ - network_name: forwarded_port
+ guest: 64738
+ host: 24738
+ protocol: tcp
+provisioner:
+ name: ansible
+ config_options:
+ defaults:
+ interpreter_python: /usr/bin/python3
+ ssh_connection:
+ pipelining: true
+verifier:
+ name: ansible
\ No newline at end of file
diff --git a/molecule/murmur/prepare.yml b/molecule/murmur/prepare.yml
new file mode 100644
index 0000000..bc3a569
--- /dev/null
+++ b/molecule/murmur/prepare.yml
@@ -0,0 +1,9 @@
+- name: Prepare
+ hosts: all
+ become: yes
+
+ tasks:
+ - name: Update apt cache
+ apt:
+ update_cache: yes
+ cache_valid_time: 3600
\ No newline at end of file
diff --git a/molecule/umurmur/INSTALL.rst b/molecule/umurmur/INSTALL.rst
new file mode 100644
index 0000000..0c4bf5c
--- /dev/null
+++ b/molecule/umurmur/INSTALL.rst
@@ -0,0 +1,23 @@
+*********************************
+Vagrant driver installation guide
+*********************************
+
+Requirements
+============
+
+* Vagrant
+* Virtualbox, Parallels, VMware Fusion, VMware Workstation or VMware Desktop
+
+Install
+=======
+
+Please refer to the `Virtual environment`_ documentation for installation best
+practices. If not using a virtual environment, please consider passing the
+widely recommended `'--user' flag`_ when invoking ``pip``.
+
+.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
+.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
+
+.. code-block:: bash
+
+ $ pip install 'molecule_vagrant'
diff --git a/molecule/umurmur/converge.yml b/molecule/umurmur/converge.yml
new file mode 100644
index 0000000..cd7c341
--- /dev/null
+++ b/molecule/umurmur/converge.yml
@@ -0,0 +1,13 @@
+---
+- name: Converge
+ hosts: all
+ become: yes
+
+ vars:
+ mumble_web_enabled: no
+ murmur_enabled: no
+ umurmur_enabled: yes
+ acme_enabled: no
+
+ roles:
+ - ansible-role-mumble
\ No newline at end of file
diff --git a/molecule/umurmur/molecule.yml b/molecule/umurmur/molecule.yml
new file mode 100644
index 0000000..651da13
--- /dev/null
+++ b/molecule/umurmur/molecule.yml
@@ -0,0 +1,47 @@
+---
+.hardware: &hardware
+ memory: 1024
+ cpu: 2
+
+dependency:
+ name: galaxy
+driver:
+ name: vagrant
+ provider:
+ name: virtualbox
+platforms:
+ - name: buster-mumble-molecule
+ box: debian/buster64
+ <<: *hardware
+ interfaces:
+ # Umurmur server
+ - network_name: forwarded_port
+ guest: 64738
+ host: 14738
+ protocol: udp
+ - network_name: forwarded_port
+ guest: 64738
+ host: 14738
+ protocol: tcp
+ - name: focal-mumble-molecule
+ box: ubuntu/focal64
+ <<: *hardware
+ interfaces:
+ # Umurmur server
+ - network_name: forwarded_port
+ guest: 64738
+ host: 24738
+ protocol: udp
+ - network_name: forwarded_port
+ guest: 64738
+ host: 24738
+ protocol: tcp
+provisioner:
+ name: ansible
+ config_options:
+ defaults:
+ interpreter_python: /usr/bin/python3
+ ssh_connection:
+ pipelining: true
+verifier:
+ name: ansible
\ No newline at end of file
diff --git a/molecule/umurmur/prepare.yml b/molecule/umurmur/prepare.yml
new file mode 100644
index 0000000..bc3a569
--- /dev/null
+++ b/molecule/umurmur/prepare.yml
@@ -0,0 +1,9 @@
+- name: Prepare
+ hosts: all
+ become: yes
+
+ tasks:
+ - name: Update apt cache
+ apt:
+ update_cache: yes
+ cache_valid_time: 3600
\ No newline at end of file
diff --git a/tasks/mumble_web.yml b/tasks/mumble_web.yml
index 229c230..764af2d 100644
--- a/tasks/mumble_web.yml
+++ b/tasks/mumble_web.yml
@@ -1,3 +1,8 @@
+- name: Install NodeJS
+ import_role:
+ name: geerlingguy.nodejs
+ tags: nodejs
+
- name: Install git package
package:
name: git
diff --git a/tasks/umurmur.yml b/tasks/umurmur.yml
index e54119d..d42af55 100644
--- a/tasks/umurmur.yml
+++ b/tasks/umurmur.yml
@@ -83,10 +83,4 @@
register: umurmur_started
- name: Trigger umurmur handlers
- meta: flush_handlers
-
-- name: Open umurmur port with UFW
- ufw:
- rule: allow
- port: "{{ umurmur_port | str }}"
- when: umurmur_ispublic | bool
\ No newline at end of file
+ meta: flush_handlers
\ No newline at end of file
diff --git a/templates/umurmur.conf.j2 b/templates/umurmur.conf.j2
index e44907e..50c67f8 100644
--- a/templates/umurmur.conf.j2
+++ b/templates/umurmur.conf.j2
@@ -1,9 +1,10 @@
{{ ansible_managed | comment }}
max_bandwidth = {{ umurmur_max_bandwidth }};
-welcometext = {{ umurmur_welcome_text
- if umurmur_welcome_text is string
- else (umurmur_welcome_text | join('
'))
- | to_json }};
+{% if umurmur_welcome_text is string %}
+welcometext = {{ umurmur_welcome_text | to_json }};
+{% else %}
+welcometext = {{ umurmur_welcome_text | join('
') | to_json }};
+{% endif %}
certificate = {{ umurmur_certificate | to_json }};
private_key = {{ umurmur_private_key | to_json }};
password = {{ umurmur_server_password | to_json }};