Browse Source

remove umurmur support

master
HgO 1 year ago
parent
commit
7bb919e184
  1. 38
      defaults/main.yml
  2. 9
      handlers/main.yml
  3. 4
      meta/main.yml
  4. 2
      molecule/default/converge.yml
  5. 18
      molecule/default/molecule.yml
  6. 1
      molecule/mumble-web/converge.yml
  7. 2
      molecule/murmur/converge.yml
  8. 23
      molecule/umurmur/INSTALL.rst
  9. 13
      molecule/umurmur/converge.yml
  10. 47
      molecule/umurmur/molecule.yml
  11. 9
      molecule/umurmur/prepare.yml
  12. 5
      tasks/main.yml
  13. 86
      tasks/umurmur.yml
  14. 2
      templates/mumble-web/config.js.j2
  15. 6
      templates/mumble-web/mumble-web.service.j2
  16. 73
      templates/umurmur/umurmur.conf.j2
  17. 16
      templates/umurmur/umurmur.service.j2

38
defaults/main.yml

@ -6,7 +6,6 @@ acme_domains:
hooks: |
{{ (
'systemctl reload nginx' if mumble_web_enabled else None,
'systemctl restart umurmur' if umurmur_enabled else None,
'systemctl restart mumble-server' if murmur_enabled else None
) | reject("none") | list }}
acme_directory_url: https://acme-v02.api.letsencrypt.org/directory
@ -133,39 +132,4 @@ murmur_channels:
- MakeTempChannel
- group: admin
allow:
- MakeTempChannel
umurmur_enabled: no
umurmur_domain: "{{ mumble_domain }}"
umurmur_max_bandwidth: 48000
umurmur_max_users: 100
umurmur_server_password: ""
umurmur_channels:
- name: Root
description: Root channel. No entry.
noenter: yes
- name: Welcome
parent: Root
description: Welcome channel
position: 0
- name: Silent
parent: Root
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: >-
{{ umurmur_channels
| selectattr('parent', 'defined')
| selectattr('parent', '==', umurmur_default_channel)
| map(attribute='name')
| list
}}
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 }}.key"
umurmur_version: master
umurmur_port: 64738
- MakeTempChannel

9
handlers/main.yml

@ -3,15 +3,6 @@
daemon_reload: yes
register: systemd_reloaded
# In order to take into account rooms config changes, umurmur must be restarted.
# A simple reload won't work for rooms positionning, for instance.
- name: restart umurmur
service:
name: umurmur
state: restarted
when:
- not (umurmur_started.changed | default(false))
- name: restart murmur
service:
name: mumble-server

4
meta/main.yml

@ -10,7 +10,7 @@ dependencies:
galaxy_info:
role_name: mumble
author: HgO
description: Ansible role to install umurmur, the minimalistic Mumble server, and mumble-web client.
description: Ansible role to install murmur (mumble server) and mumble-web client.
company: PPBe
# If the issue tracker for your role is not on github, uncomment the
@ -50,7 +50,7 @@ galaxy_info:
versions:
- all
galaxy_tags: [mumble,voip,umurmur]
galaxy_tags: [mumble,voip,murmur,mumble-web]
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.

2
molecule/default/converge.yml

@ -6,8 +6,6 @@
vars:
mumble_web_enabled: yes
murmur_enabled: yes
umurmur_enabled: yes
umurmur_port: 64739
acme_enabled: no
roles:

18
molecule/default/molecule.yml

@ -30,15 +30,6 @@ 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
@ -59,15 +50,6 @@ 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:

1
molecule/mumble-web/converge.yml

@ -6,7 +6,6 @@
vars:
mumble_web_enabled: yes
murmur_enabled: yes
umurmur_enabled: no
acme_enabled: no
roles:

2
molecule/murmur/converge.yml

@ -6,8 +6,6 @@
vars:
mumble_web_enabled: no
murmur_enabled: yes
umurmur_enabled: no
umurmur_port: 64739
acme_enabled: no
roles:

23
molecule/umurmur/INSTALL.rst

@ -1,23 +0,0 @@
*********************************
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'

13
molecule/umurmur/converge.yml

@ -1,13 +0,0 @@
---
- name: Converge
hosts: all
become: yes
vars:
mumble_web_enabled: no
murmur_enabled: no
umurmur_enabled: yes
acme_enabled: no
roles:
- ansible-role-mumble

47
molecule/umurmur/molecule.yml

@ -1,47 +0,0 @@
---
.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

9
molecule/umurmur/prepare.yml

@ -1,9 +0,0 @@
- name: Prepare
hosts: all
become: yes
tasks:
- name: Update apt cache
apt:
update_cache: yes
cache_valid_time: 3600

5
tasks/main.yml

@ -20,11 +20,6 @@
- certificate
- self_signed
- name: Deploy uMurmur server
import_tasks: umurmur.yml
when: umurmur_enabled
tags: umurmur
- name: Deploy Murmur server
import_tasks: murmur.yml
when: murmur_enabled

86
tasks/umurmur.yml

@ -1,86 +0,0 @@
- name: Install umurmur build dependencies
package:
name: "{{ package }}"
state: present
loop:
- git
- build-essential
- cmake
- libconfig-dev
- libprotobuf-c-dev
- libmbedtls-dev
- ssl-cert
loop_control:
loop_var: package
- name: Clone umurmur git repository
git:
repo: https://github.com/umurmur/umurmur.git
dest: /opt/umurmur
version: "{{ umurmur_version }}"
- name: Change umurmur git repository's permissions
file:
path: /opt/umurmur
owner: root
group: root
mode: "775"
state: directory
- name: Create the build directory
file:
path: /opt/umurmur/build
owner: root
group: root
mode: "775"
state: directory
- name: Generate the Makefile with cmake
shell: cd /opt/umurmur/build && cmake .. -DSSL=mbedtls
changed_when: no
- name: Build umurmur from source
make:
chdir: /opt/umurmur/build
changed_when: _umurmur_built.stdout_lines | length > 1
register: _umurmur_built
- name: Install umurmur
make:
chdir: /opt/umurmur/build
target: install
changed_when: "'Installing' in _umurmur_installed.stdout"
register: _umurmur_installed
notify: restart umurmur
- name: Copy umurmur config file
template:
src: umurmur/umurmur.conf.j2
dest: /usr/local/etc/umurmur.conf
owner: root
group: "{{ umurmur_ssl_group }}"
mode: "640"
validate: /usr/local/bin/umurmurd -t -c %s
notify: restart umurmur
tags: umurmur_config
- name: Copy umurmur systemd service
template:
src: umurmur/umurmur.service.j2
dest: /etc/systemd/system/umurmur.service
owner: root
group: root
mode: "644"
notify:
- reload systemd
- restart umurmur
- name: Start umurmur service
service:
name: umurmur
enabled: yes
state: started
register: umurmur_started
- name: Trigger umurmur handlers
meta: flush_handlers

2
templates/mumble-web/config.js.j2

@ -13,7 +13,7 @@ let config = window.mumbleWebConfig // eslint-disable-line no-unused-vars
config.connectDialog.address = false
config.connectDialog.port = false
config.connectDialog.token = false
config.connectDialog.password = {{ (umurmur_server_password != '') | lower }}
config.connectDialog.password = {{ (murmur_server_password != '') | lower }}
// Default values for user settings
// You can see your current value by typing `localStorage.getItem('mumble.$setting')` in the web console.

6
templates/mumble-web/mumble-web.service.j2

@ -1,7 +1,7 @@
[Unit]
Description=Mumble web client using websockets
After=network.target umurmur.service
Wants=umurmur.service
After=network.target murmur.service
Wants=murmur.service
[Service]
Type=simple
@ -9,7 +9,7 @@ User=nobody
Group=nogroup
Restart=always
RestartSec=3
ExecStart=/usr/bin/websockify --ssl-target {{ mumble_web_websockify_port }} localhost:{{ umurmur_port }}
ExecStart=/usr/bin/websockify --ssl-target {{ mumble_web_websockify_port }} localhost:{{ murmur_port }}
ExecReload=/bin/kill -HUP $MAINPID
[Install]

73
templates/umurmur/umurmur.conf.j2

@ -1,73 +0,0 @@
{{ ansible_managed | comment }}
max_bandwidth = {{ umurmur_max_bandwidth }};
{% if umurmur_welcome_text is string %}
welcometext = {{ umurmur_welcome_text | to_json }};
{% else %}
welcometext = {{ umurmur_welcome_text | join('<br />') | to_json }};
{% endif %}
certificate = {{ umurmur_certificate | to_json }};
private_key = {{ umurmur_private_key | to_json }};
password = {{ umurmur_server_password | to_json }};
{% if umurmur_admin_password is defined %}
admin_password = {{ umurmur_admin_password | to_json }}; # Set to enable admin functionality.
{% endif %}
# ban_length = 0; # Length in seconds for a ban. Default is 0. 0 = forever.
# enable_ban = false; # Default is false
# banfile = "banfile.txt"; # File to save bans to. Default is to not save bans to file.
# sync_banfile = false; # Keep banfile synced. Default is false, which means it is saved to at shutdown only.
allow_textmessage = true; # Default is true
# opus_threshold = 100; # Percentage of users supporting Opus codec for it to be chosen. Default is 100.
# show_addresses = true; # Whether to show client's IP addresses under user information
max_users = {{ umurmur_max_users }};
bindport = {{ umurmur_port }};
# bindaddr = "0.0.0.0";
# username and groupname for privilege dropping.
# Will attempt to switch user if set.
# username = "";
# If groupname not set the user's default login group will be used
# groupname = "";
# Log to file option. Default is logging to syslog.
# umurmurd will close and reopen the logfile if SIGHUP is received.
logfile = "/var/log/umurmurd.log";
# CA location for CA-signed certificates
# ca_path = "/path/to/ca/certificates/";
# Channel tree definition:
# Root channel must always be defined first.
# If a channel has a parent, the parent must be defined before the child channel(s).
channels = (
{% for channel in umurmur_channels %}
{
name = {{ channel.name | to_json }};
description = {{ channel.description | default('') | to_json }};
parent = {{ channel.parent | default('') | to_json }};
noenter = {{ channel.noenter | default(false) | string | lower }};
silent = {{ channel.silent | default(false) | string | lower }};
{% if channel.position is defined %}
position = {{ channel.position }};
{% endif %}
{% if channel.password is defined %}
password = {{ channel.password | to_json }};
{% endif %}
}{{ loop.last | ternary("", ",") }}
{% endfor %}
);
# Channel links configuration.
channel_links = (
{% for channel in umurmur_channel_links %}
{% for destination in channel.destinations %}
{
source = {{ channel.source | to_json }};
destination = {{ destination | to_json }};
}{{ loop.last | ternary('', ',') }}
{% endfor %}
{% endfor %}
);
# The channel in which users will appear in when connecting.
# Note that default channel can't have 'noenter = true' or password set
default_channel = {{ umurmur_default_channel | to_json }};

16
templates/umurmur/umurmur.service.j2

@ -1,16 +0,0 @@
[Unit]
Description=Minimalistic Mumble server
After=network.target
[Service]
Type=simple
User=nobody
Group={{ umurmur_ssl_group }}
Restart=always
RestartSec=3
ExecStartPre=/usr/local/bin/umurmurd -t -c /usr/local/etc/umurmur.conf
ExecStart=/usr/local/bin/umurmurd -d -r -c /usr/local/etc/umurmur.conf
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Loading…
Cancel
Save