Initial version of murmur module
This commit is contained in:
parent
313d847e6a
commit
4b0c766c5a
4 changed files with 337 additions and 0 deletions
18
murmur/Makefile
Normal file
18
murmur/Makefile
Normal file
|
@ -0,0 +1,18 @@
|
|||
include $(CURDIR)/../Makefile.inc
|
||||
|
||||
VERSION = 1.2.3
|
||||
|
||||
TARGET = murmur-static_x86-$(VERSION).tar.bz2
|
||||
SOURCE = http://downloads.sourceforge.net/project/mumble/Mumble/$(VERSION)/murmur-static_x86-$(VERSION).tar.bz2
|
||||
|
||||
all: download manifest
|
||||
download: $(PACKAGES)/$(TARGET)
|
||||
manifest: $(MANIFESTS)/murmur.pp
|
||||
|
||||
$(PACKAGES)/$(TARGET):
|
||||
@umask 022; echo $@; \
|
||||
test -f $@ || curl -o $@ $(SOURCE)
|
||||
|
||||
$(MANIFESTS)/murmur.pp: $(PACKAGES)/$(TARGET)
|
||||
@umask 022; echo $@; \
|
||||
echo '$$murmur_package_latest = "$(TARGET)"' > $@
|
56
murmur/files/murmur.init
Normal file
56
murmur/files/murmur.init
Normal file
|
@ -0,0 +1,56 @@
|
|||
#!/bin/bash
|
||||
|
||||
# chkconfig: 35 90 12
|
||||
# description: Murmur Service
|
||||
# processname: murmur
|
||||
|
||||
[ -f /etc/rc.d/init.d/functions ] || exit 0
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
RETVAL=0
|
||||
PROG="/usr/local/murmur/murmur.x86"
|
||||
ARGS="-ini /srv/murmur/murmur.ini"
|
||||
|
||||
start() {
|
||||
echo -n "Starting Murmur server: "
|
||||
daemon --user murmur $PROG $ARGS
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/murmur
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n "Stopping Murmur server: "
|
||||
killproc $PROG
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/murmur
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
|
||||
status)
|
||||
status $PROG
|
||||
;;
|
||||
|
||||
restart|reload|condrestart)
|
||||
stop
|
||||
sleep 2
|
||||
start
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status|restart|reload|condrestart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit $RETVAL
|
113
murmur/manifests/init.pp
Normal file
113
murmur/manifests/init.pp
Normal file
|
@ -0,0 +1,113 @@
|
|||
# Install murmur (Mumble server).
|
||||
#
|
||||
# === Global variables
|
||||
#
|
||||
# $murmur_ssl_key:
|
||||
# Path to SSL private key.
|
||||
#
|
||||
# $murmur_ssl_cert:
|
||||
# Path to SSL certificate.
|
||||
#
|
||||
# $murmur_password:
|
||||
# Server passwords. Defaults to none.
|
||||
#
|
||||
# $murmur_welcome:
|
||||
# Server welcome message.
|
||||
#
|
||||
class murmur {
|
||||
|
||||
if !$murmur_package {
|
||||
if $murmur_package_latest {
|
||||
$murmur_package = $murmur_package_latest
|
||||
} else {
|
||||
fail("Must define \$murmur_package or \$murmur_package_latest")
|
||||
}
|
||||
}
|
||||
|
||||
if !$murmur_password {
|
||||
$murmur_password = ""
|
||||
}
|
||||
if !$murmur_welcome {
|
||||
$murmur_welcome = "<br />Welcome to this server running Murmur.<br />"
|
||||
}
|
||||
|
||||
file { "/usr/local/src/murmur-static_x86.tar.bz2":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => "puppet:///files/packages/${murmur_package}",
|
||||
}
|
||||
util::extract::tar { "/usr/local/murmur":
|
||||
strip => 1,
|
||||
source => "/usr/local/src/murmur-static_x86.tar.bz2",
|
||||
require => File["/usr/local/src/murmur-static_x86.tar.bz2"],
|
||||
notify => Service["murmur"],
|
||||
}
|
||||
|
||||
include user::system
|
||||
realize(User["murmur"], Group["murmur"])
|
||||
|
||||
if !$murmur_ssl_key {
|
||||
$murmur_ssl_key = "${puppet_ssldir}/private_keys/${homename}.pem"
|
||||
}
|
||||
if !$murmur_ssl_cert {
|
||||
$murmur_ssl_cert = "${puppet_ssldir}/certs/${homename}.pem"
|
||||
}
|
||||
|
||||
include ssl
|
||||
file { "${ssl::certs}/murmur.crt":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => $murmur_ssl_cert,
|
||||
notify => Service["murmur"],
|
||||
}
|
||||
file { "${ssl::private}/murmur.key":
|
||||
ensure => present,
|
||||
mode => "0640",
|
||||
owner => "root",
|
||||
group => "murmur",
|
||||
source => $murmur_ssl_key,
|
||||
require => Group["murmur"],
|
||||
notify => Service["murmur"],
|
||||
}
|
||||
|
||||
file { "/srv/murmur":
|
||||
ensure => directory,
|
||||
mode => "0700",
|
||||
owner => "murmur",
|
||||
group => "murmur",
|
||||
require => User["murmur"],
|
||||
}
|
||||
file { "/srv/murmur/murmur.ini":
|
||||
ensure => present,
|
||||
mode => "0600",
|
||||
owner => "murmur",
|
||||
group => "murmur",
|
||||
content => template("murmur/murmur.ini.erb"),
|
||||
require => File["/srv/murmur"],
|
||||
notify => Service["murmur"],
|
||||
}
|
||||
|
||||
file { "/etc/init.d/murmur":
|
||||
ensure => present,
|
||||
mode => "0755",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => "puppet:///modules/murmur/murmur.init",
|
||||
notify => Exec["add-service-murmur"],
|
||||
}
|
||||
exec { "add-service-murmur":
|
||||
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
||||
command => "chkconfig --add murmur",
|
||||
refreshonly => true,
|
||||
before => Service["murmur"],
|
||||
}
|
||||
service { "murmur":
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
|
||||
}
|
150
murmur/templates/murmur.ini.erb
Normal file
150
murmur/templates/murmur.ini.erb
Normal file
|
@ -0,0 +1,150 @@
|
|||
# Path to database. If blank, will search for
|
||||
# murmur.sqlite in default locations or create it if not found.
|
||||
database=/srv/murmur/murmur.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.
|
||||
#
|
||||
#dbDriver=QMYSQL
|
||||
#dbUsername=
|
||||
#dbPassword=
|
||||
#dbHost=
|
||||
#dbPort=
|
||||
#dbPrefix=murmur_
|
||||
#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.
|
||||
#
|
||||
#dbus=session
|
||||
|
||||
# Alternate service name. Only use if you are running distinct
|
||||
# murmurd processes connected to the same D-Bus daemon.
|
||||
#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.
|
||||
#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.
|
||||
|
||||
icesecretread=
|
||||
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.
|
||||
#autobanAttempts = 10
|
||||
#autobanTimeframe = 120
|
||||
#autobanTime = 300
|
||||
|
||||
# Murmur default to logging to murmur.log. If you leave this blank,
|
||||
# murmur will log to the console (linux) or through message boxes (win32).
|
||||
logfile=/srv/murmur/murmur.log
|
||||
|
||||
# If set, murmur will write its process ID to this file.
|
||||
pidfile=/srv/murmur/murmur.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
|
||||
welcometext="<%= murmur_welcome %>"
|
||||
|
||||
# Port to bind TCP and UDP sockets to
|
||||
port=64738
|
||||
|
||||
# Specific IP or hostname to bind to.
|
||||
# If this is left blank (default), murmur will bind to all available addresses.
|
||||
#host=
|
||||
|
||||
# Password to join server
|
||||
serverpassword=<%= murmur_password %>
|
||||
|
||||
# Maximum bandwidth (in bits per second) clients are allowed
|
||||
# to send speech at.
|
||||
bandwidth=72000
|
||||
|
||||
# Maximum number of concurrent clients allowed.
|
||||
users=100
|
||||
|
||||
# Regular expression used to validate channel names
|
||||
# (note that you have to escape backslashes with \ )
|
||||
#channelname=[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+
|
||||
|
||||
# Regular expression used to validate user names
|
||||
# (note that you have to escape backslashes with \ )
|
||||
#username=[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+
|
||||
|
||||
# Maximum length of text messages in characters. 0 for no limit.
|
||||
#textmessagelength=5000
|
||||
|
||||
# Maximum length of text messages in characters, with image data. 0 for no limit.
|
||||
#imagemessagelength=131072
|
||||
|
||||
# Allow clients to use HTML in messages, user comments and channel descriptions?
|
||||
#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
|
||||
#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.
|
||||
#
|
||||
#registerName=Mumble Server
|
||||
#registerPassword=secret
|
||||
#registerUrl=http://mumble.sourceforge.net/
|
||||
#registerHostname=
|
||||
|
||||
# To enable bonjour service discovery uncomment the following line.
|
||||
# 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.
|
||||
bonjour=False
|
||||
|
||||
# If you have a proper SSL certificate, you can provide the filenames here.
|
||||
# Otherwise, Murmur will create it's own certificate automatically.
|
||||
sslCert=<%= scope.lookupvar('ssl::certs') %>/murmur.crt
|
||||
sslKey=<%= scope.lookupvar('ssl::private') %>/murmur.key
|
||||
|
||||
# If murmur is started as root, which user should it switch to?
|
||||
# This option is ignored if murmur isn't started with root privileges.
|
||||
#uname=
|
||||
|
||||
# If this options is enabled, only clients which have a certificate are allowed
|
||||
# to connect.
|
||||
#certrequired=False
|
||||
|
||||
# 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]
|
||||
Ice.Warn.UnknownProperties=1
|
||||
Ice.MessageSizeMax=65536
|
Loading…
Add table
Reference in a new issue