Initial mumble server commit
This commit is contained in:
commit
659e8eeef7
14
LICENSE
Normal file
14
LICENSE
Normal file
@ -0,0 +1,14 @@
|
||||
Copyright (c) 2013-2014 Salt Stack Formulas
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
27
README.rst
Normal file
27
README.rst
Normal file
@ -0,0 +1,27 @@
|
||||
mumble-server
|
||||
=======
|
||||
Install and configure a mumble-server instance.
|
||||
|
||||
.. note::
|
||||
|
||||
See the full `Salt Formulas installation and usage instructions
|
||||
<http://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html>`_.
|
||||
|
||||
Available states
|
||||
================
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
|
||||
``mumble-server``
|
||||
-----------
|
||||
|
||||
Installs the ``mumble-server`` server package and service.
|
||||
|
||||
``mumble-server.config``
|
||||
------------------
|
||||
|
||||
Installs the mumble-server configuration file included in this formula
|
||||
(under "mumble-server/files"). This configuration file is populated
|
||||
by values from pillar. ``pillar.example`` results in the generation
|
||||
of the default ``mumble-server.ini`` file on Ubuntu 14.04 Trusty Tahr .
|
15
mumble-server/config.sls
Normal file
15
mumble-server/config.sls
Normal file
@ -0,0 +1,15 @@
|
||||
{% from "vsftpd/map.jinja" import vsftpd with context %}
|
||||
|
||||
include:
|
||||
- vsftpd
|
||||
|
||||
vsftpd_config:
|
||||
file.managed:
|
||||
- name: {{ vsftpd.vsftpd_config }}
|
||||
- source: {{ vsftpd.vsftpd_config_src }}
|
||||
- template: jinja
|
||||
- user: root
|
||||
- mode: 644
|
||||
- watch_in:
|
||||
- service: {{ vsftpd.service }}
|
||||
|
230
mumble-server/files/mumble-server.ini
Normal file
230
mumble-server/files/mumble-server.ini
Normal file
@ -0,0 +1,230 @@
|
||||
{%- set mumbleserver_config = pillar.get('mumbleserver_config', {}) -%}
|
||||
{#- present in mumbleserver_config and known in actual file options -#}
|
||||
{%- set processed_options = [] -%}
|
||||
|
||||
{#- generic renderer used for mumbleserver known options, -#}
|
||||
{#- and unknown options -#}
|
||||
{%- macro render_option(keyword, default, config_dict=mumbleserver_config) -%}
|
||||
{%- set value = config_dict.get(keyword, default) -%}
|
||||
{%- if value is string or value is number -%}
|
||||
{{ keyword }}={{ value }}
|
||||
{%- else -%}
|
||||
{%- for single_value in value -%}
|
||||
{{ keyword }}={{ single_value }}
|
||||
{% endfor -%}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#- macros for render option according to present -#}
|
||||
{%- macro option_impl(keyword, default, present) -%}
|
||||
{%- if present -%}
|
||||
{%- do processed_options.append(keyword) -%}
|
||||
{%- set prefix='' -%}
|
||||
{%- else -%}
|
||||
{%- set prefix='#' -%}
|
||||
{%- endif -%}
|
||||
{#- add prefix to keyword -#}
|
||||
{%- set keyword = prefix ~ keyword -%}
|
||||
{{ render_option(keyword, default) }}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#- macros for render option commented by default -#}
|
||||
{%- macro option(keyword, default, present) -%}
|
||||
{{ option_impl(keyword, default, keyword in mumbleserver_config) }}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#- macros for render option uncommented by default -#}
|
||||
{%- macro option_default_uncommented(keyword, default, present) -%}
|
||||
{{ option_impl(keyword, default, True) }}
|
||||
{%- endmacro -%}
|
||||
#
|
||||
# This file is managed by salt. Manual changes risk being overwritten.
|
||||
# Murmur configuration file.
|
||||
#
|
||||
# General notes:
|
||||
# * Settings in this file are default settings and many of them can be overridden
|
||||
# with virtual server specific configuration via the Ice or DBus interface.
|
||||
# * Due to the way this configuration file is read some rules have to be
|
||||
# followed when specifying variable values (as in variable = value):
|
||||
# * Make sure to quote the value when using commas in strings or passwords.
|
||||
# NOT variable = super,secret BUT variable = "super,secret"
|
||||
# * Make sure to escape special characters like '\' or '"' correctly
|
||||
# NOT variable = """ BUT variable = "\""
|
||||
# NOT regex = \w* BUT regex = \\w*
|
||||
|
||||
# Path to database. If blank, will search for
|
||||
# murmur.sqlite in default locations or create it if not found.
|
||||
{{ option_default_uncommented('database', '/var/lib/mumble-server/mumble-server.sqlite') }}
|
||||
|
||||
# If you wish to use something other than SQLite, you'll need to set the name
|
||||
# of the database above, and also uncomment the below.
|
||||
# Sticking with SQLite is strongly recommended, as it's the most well tested
|
||||
# and by far the fastest solution.
|
||||
#
|
||||
{{ option('dbDriver', '') }}
|
||||
{{ option('dbUsername', '') }}
|
||||
{{ option('dbPassword', '') }}
|
||||
{{ option('dbHost', '') }}
|
||||
{{ option('dbPort', '') }}
|
||||
{{ option('dbPrefix', 'murmur_') }}
|
||||
{{ option('dbOpts', '') }}
|
||||
|
||||
# Murmur defaults to not using D-Bus. If you wish to use dbus, which is one of the
|
||||
# RPC methods available in Murmur, please specify so here.
|
||||
#
|
||||
{{ option_default_uncommented('dbus', 'system') }}
|
||||
|
||||
# Alternate D-Bus service name. Only use if you are running distinct
|
||||
# murmurd processes connected to the same D-Bus daemon.
|
||||
{{ option('dbusservice', 'net.sourceforge.mumble.murmur') }}
|
||||
|
||||
# If you want to use ZeroC Ice to communicate with Murmur, you need
|
||||
# to specify the endpoint to use. Since there is no authentication
|
||||
# with ICE, you should only use it if you trust all the users who have
|
||||
# shell access to your machine.
|
||||
# Please see the ICE documentation on how to specify endpoints.
|
||||
{{ option_default_uncommented('ice', '"tcp -h 127.0.0.1 -p 6502"') }}
|
||||
|
||||
# Ice primarily uses local sockets. This means anyone who has a
|
||||
# user account on your machine can connect to the Ice services.
|
||||
# You can set a plaintext "secret" on the Ice connection, and
|
||||
# any script attempting to access must then have this secret
|
||||
# (as context with name "secret").
|
||||
# Access is split in read (look only) and write (modify)
|
||||
# operations. Write access always includes read access,
|
||||
# unless read is explicitly denied (see note below).
|
||||
#
|
||||
# Note that if this is uncommented and with empty content,
|
||||
# access will be denied.
|
||||
|
||||
{{ option('icesecretread', '') }}
|
||||
{{ option_default_uncommented('icesecretwrite', '') }}
|
||||
|
||||
# How many login attempts do we tolerate from one IP
|
||||
# inside a given timeframe before we ban the connection?
|
||||
# Note that this is global (shared between all virtual servers), and that
|
||||
# it counts both successfull and unsuccessfull connection attempts.
|
||||
# Set either Attempts or Timeframe to 0 to disable.
|
||||
{{ option('autobanAttempts', '10') }}
|
||||
{{ option('autobanTimeframe', '120') }}
|
||||
{{ option('autobanTime', '300') }}
|
||||
|
||||
# Specifies the file Murmur should log to. By default, Murmur
|
||||
# logs to the file 'murmur.log'. If you leave this field blank
|
||||
# on Unix-like systems, Murmur will force itself into foreground
|
||||
# mode which logs to the console.
|
||||
{{ option_default_uncommented('logfile', '/var/log/mumble-server/mumble-server.log') }}
|
||||
|
||||
# If set, Murmur will write its process ID to this file
|
||||
# when running in daemon mode (when the -fg flag is not
|
||||
# specified on the command line). Only available on
|
||||
# Unix-like systems.
|
||||
{{ option_default_uncommented('pidfile', '/var/run/mumble-server/mumble-server.pid') }}
|
||||
|
||||
# The below will be used as defaults for new configured servers.
|
||||
# If you're just running one server (the default), it's easier to
|
||||
# configure it here than through D-Bus or Ice.
|
||||
#
|
||||
# Welcome message sent to clients when they connect.
|
||||
{{ option_default_uncommented('welcometext', '"<br />Welcome to this server running <b>Murmur</b>.<br />Enjoy your stay!<br />"') }}
|
||||
|
||||
# Port to bind TCP and UDP sockets to.
|
||||
{{ option_default_uncommented('port', '64738') }}
|
||||
|
||||
# Specific IP or hostname to bind to.
|
||||
# If this is left blank (default), Murmur will bind to all available addresses.
|
||||
{{ option('host', '') }}
|
||||
|
||||
# Password to join server.
|
||||
{{ option_default_uncommented('serverpassword', '') }}
|
||||
|
||||
# Maximum bandwidth (in bits per second) clients are allowed
|
||||
# to send speech at.
|
||||
{{ option_default_uncommented('bandwidth', '72000') }}
|
||||
|
||||
# Maximum number of concurrent clients allowed.
|
||||
{{ option_default_uncommented('users', '100') }}
|
||||
|
||||
# Amount of users with Opus support needed to force Opus usage, in percent.
|
||||
# 0 = Always enable Opus, 100 = enable Opus if it's supported by all clients.
|
||||
{{ option('opusthreshold', '100') }}
|
||||
|
||||
# Maximum depth of channel nesting. Note that some databases like MySQL using
|
||||
# InnoDB will fail when operating on deeply nested channels.
|
||||
{{ option('channelnestinglimit', '10') }}
|
||||
|
||||
# Regular expression used to validate channel names.
|
||||
# (Note that you have to escape backslashes with \ )
|
||||
{{ option('channelname', '[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+') }}
|
||||
|
||||
# Regular expression used to validate user names.
|
||||
# (Note that you have to escape backslashes with \ )
|
||||
{{ option('username', '[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+') }}
|
||||
|
||||
# Maximum length of text messages in characters. 0 for no limit.
|
||||
{{ option('textmessagelength', '5000') }}
|
||||
|
||||
# Maximum length of text messages in characters, with image data. 0 for no limit.
|
||||
{{ option('imagemessagelength', '131072') }}
|
||||
|
||||
# Allow clients to use HTML in messages, user comments and channel descriptions?
|
||||
{{ option('allowhtml', 'true') }}
|
||||
|
||||
# Murmur retains the per-server log entries in an internal database which
|
||||
# allows it to be accessed over D-Bus/ICE.
|
||||
# How many days should such entries be kept?
|
||||
# Set to 0 to keep forever, or -1 to disable logging to the DB.
|
||||
{{ option('logdays', '31') }}
|
||||
|
||||
# To enable public server registration, the serverpassword must be blank, and
|
||||
# this must all be filled out.
|
||||
# The password here is used to create a registry for the server name; subsequent
|
||||
# updates will need the same password. Don't lose your password.
|
||||
# The URL is your own website, and only set the registerHostname for static IP
|
||||
# addresses.
|
||||
# Only uncomment the 'registerName' parameter if you wish to give your "Root" channel a custom name.
|
||||
#
|
||||
{{ option('registerName', 'Mumble Server') }}
|
||||
{{ option('registerPassword', 'secret') }}
|
||||
{{ option('registerUrl', 'http://mumble.sourceforge.net/') }}
|
||||
{{ option('registerHostname', '') }}
|
||||
|
||||
# If this option is enabled, the server will announce its presence via the
|
||||
# bonjour service discovery protocol. To change the name announced by bonjour
|
||||
# adjust the registerName variable.
|
||||
# See http://developer.apple.com/networking/bonjour/index.html for more information
|
||||
# about bonjour.
|
||||
{{ option('bonjour', 'True') }}
|
||||
|
||||
# If you have a proper SSL certificate, you can provide the filenames here.
|
||||
# Otherwise, Murmur will create it's own certificate automatically.
|
||||
{{ option('sslCert', '') }}
|
||||
{{ option('sslKey', '') }}
|
||||
|
||||
# If Murmur is started as root, which user should it switch to?
|
||||
# This option is ignored if Murmur isn't started with root privileges.
|
||||
{{ option_default_uncommented('uname', 'mumble-server') }}
|
||||
|
||||
# If this options is enabled, only clients which have a certificate are allowed
|
||||
# to connect.
|
||||
{{ option('certrequired', 'False') }}
|
||||
|
||||
# If enabled, clients are sent information about the servers version and operating
|
||||
# system.
|
||||
{{ option('sendversion', 'True') }}
|
||||
|
||||
# You can configure any of the configuration options for Ice here. We recommend
|
||||
# leave the defaults as they are.
|
||||
# Please note that this section has to be last in the configuration file.
|
||||
#
|
||||
[Ice]
|
||||
{{ option_default_uncommented('Ice.Warn.UnknownProperties', '1') }}
|
||||
{{ option_default_uncommented('Ice.MessageSizeMax', '65536') }}
|
||||
|
||||
{# Handling unknown in salt template options #}
|
||||
{%- for keyword in mumbleserver_config.keys() %}
|
||||
{%- if not keyword in processed_options -%}
|
||||
{#- send a blank default as it doesn't matter #}
|
||||
{{ render_option(keyword, '') }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
14
mumble-server/init.sls
Normal file
14
mumble-server/init.sls
Normal file
@ -0,0 +1,14 @@
|
||||
{% from "mumbleserver/map.jinja" import mumbleserver with context %}
|
||||
|
||||
mumbleserver:
|
||||
{% if mumbleserver.server is defined %}
|
||||
pkg.installed:
|
||||
- name: {{ mumbleserver.server }}
|
||||
{% endif %}
|
||||
service.running:
|
||||
- enable: True
|
||||
- name: {{ mumbleserver.service }}
|
||||
{% if mumbleserver.server is defined %}
|
||||
- require:
|
||||
- pkg: {{ mumbleserver.server }}
|
||||
{% endif %}
|
8
mumble-server/map.jinja
Normal file
8
mumble-server/map.jinja
Normal file
@ -0,0 +1,8 @@
|
||||
{% set mumbleserver = salt['grains.filter_by']({
|
||||
'Debian': {
|
||||
'server': 'mumble-server',
|
||||
'service': 'mumble-server',
|
||||
'mumbleserver_config': '/etc/mumble-server.ini',
|
||||
'mumbleserver_config_src': 'salt://mumble-server/files/mumble-server.ini',
|
||||
},
|
||||
}, merge=salt['pillar.get']('mumbleserver:lookup')) %}
|
15
pillar.example
Normal file
15
pillar.example
Normal file
@ -0,0 +1,15 @@
|
||||
mumbleserver_config:
|
||||
database: '/var/lib/mumble-server/mumble-server.sqlite'
|
||||
dbus: 'system'
|
||||
ice: '"tcp -h 127.0.0.1 -p 6502"'
|
||||
icesecretwrite: ''
|
||||
logfile: '/var/log/mumble-server/mumble-server.log'
|
||||
pidfile: '/var/run/mumble-server/mumble-server.pid'
|
||||
welcometext: '"<br />Welcome to this server running <b>Murmur</b>.<br />Enjoy your stay!<br />"'
|
||||
port: '64738'
|
||||
serverpassword: ''
|
||||
bandwidth: '72000'
|
||||
users: '100'
|
||||
uname: 'mumble-server'
|
||||
Ice.Warn.UnknownProperties: '1'
|
||||
Ice.MessageSizeMax: '65536'
|
Loading…
Reference in New Issue
Block a user