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 }};