Puppet Class: mumble

Defined in:
manifests/init.pp

Overview

Class: mumble

This class manages mumble on Debian based systems.

Examples:

Install mumble and configure an entrance password

class { 'mumble':
  password => 'Fo0b@rr',
}

Parameters:

  • autostart (Any) (defaults to: true)

    start server at boot. Default value: true

  • ppa (Any) (defaults to: false)

    use Ubuntu PPA instead default APT repos. Default value: false

  • snapshot (PPA only) (defaults to: false)

    use snapshot over release. Default value: false

  • libicu_fix (Any) (defaults to: false)

    install libicu-dev to fix dependency. Default value: false

  • server_password (Any) (defaults to: undef)

    supervisor account password (mumble admin). Default value: undef

  • version (Any) (defaults to: installed)

    configure the version of mumble to install. Default value: installed

  • register_name (Any) (defaults to: 'Mumble Server')

    muble server name. (This parameter affect mumble-server.ini through a template. For more info, see mumble.sourceforge.net/Murmur.ini) Default value: ‘Mumble Server’

  • password (Any) (defaults to: '')

    general entrance password. Default value: ”

  • port (Any) (defaults to: 64738)

    port to bind TCP and UDP sockets to. Default value: ‘64738’

  • host (Any) (defaults to: '')

    IP or hostname to bind to. (If this is left blank (default), Murmur will bind to all available addresses). Default value: ”

  • user (Any) (defaults to: 'mumble-server')

    username used to start mumble. Default value: ‘mumble-server’

  • group (Any) (defaults to: 'mumble-server')

    mumble server group Default value: ‘mumble-server’

  • bandwidth (Any) (defaults to: 72000)

    maximum bandwidth (in bits per second) clients are allowed). Default value: ‘72000’

  • users (Any) (defaults to: 100)

    maximum number of concurrent clients allowed. Default value: ‘100’

  • text_length_limit (Any) (defaults to: 5000)

    maximum length of text messages in characters. 0 for no limit. Default value: ‘5000’

  • autoban_attempts (Any) (defaults to: 10)

    how many login attempts do we tolerate from one IP? (0 to disable). Default value: ‘10’

  • autoban_time_frame (Any) (defaults to: 120)

    time interval (0 to disable). Default value: ‘120’

  • autoban_time (Any) (defaults to: 300)

    bantime duration in seconds (0 to disable). Default value: ‘300’

  • database_path (Any) (defaults to: '/var/lib/mumble-server/mumble-server.sqlite')

    path to database. Default value: ‘/var/lib/mumble-server/mumble-server.sqlite’ Allowed values: absolute path

  • log_path (Any) (defaults to: '/var/log/mumble-server/mumble-server.log')

    path to logfile Default value: ‘/var/log/mumble-server/mumble-server.log’, Allowed values: absolute path

  • allow_html (Any) (defaults to: true)

    allow clients to use HTML in messages, user comments and channel descriptions? Default value: ‘true’

  • log_days (Any) (defaults to: 31)

    log entries in an internal database (set to 0 to keep forever, or -1 to disable logging to the DB). Default value: ‘31’

  • ssl_cert (Any) (defaults to: '')

    ssl certificate. Default value: ”

  • ssl_key (Any) (defaults to: '')

    key file. Default value: ”

  • welcome_text (Any) (defaults to: '<br />Welcome to this server running <b>Murmur</b>.<br />Enjoy your stay!<br />')

    a welcome formated text. Default value: ‘<br />Welcome to this server running Murmur.<br />Enjoy your stay!<br />’



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# File 'manifests/init.pp', line 63

class mumble(
  $autostart          = true,      # Start server at boot
  $ppa                = false,     # Use PPA
  $snapshot           = false,     # PPA only: use snapshot over release
  $libicu_fix         = false,     # install libicu-dev to fix dependency
  $server_password    = undef,     # Supervisor account password
  $version            = installed, # Version of mumble to install

  # The following parameters affect mumble-server.ini through a template
  # For more info, see http://mumble.sourceforge.net/Murmur.ini
  $register_name      = 'Mumble Server',
  $password           = '',    # General entrance password
  $port               = 64738,
  $host               = '',
  $user               = 'mumble-server',
  $group              = 'mumble-server',
  $bandwidth          = 72000,
  $users              = 100,
  $text_length_limit  = 5000,
  $autoban_attempts   = 10,
  $autoban_time_frame = 120,
  $autoban_time       = 300,
  $database_path      = '/var/lib/mumble-server/mumble-server.sqlite',
  $log_path           = '/var/log/mumble-server/mumble-server.log',
  $allow_html         = true,
  $log_days           = 31,
  $ssl_cert           = '',
  $ssl_key            = '',
  $welcome_text       = '<br />Welcome to this server running <b>Murmur</b>.<br />Enjoy your stay!<br />',
  ) {

  case $::operatingsystem {
    'Debian','Ubuntu': {
      if $ppa {
        apt::ppa { 'ppa:mumble/snapshot':
          # ensure => $snapshot ? { true => 'present', false => 'absent' },
          before => Package['mumble-server'],
        }
        apt::ppa { 'ppa:mumble/release':
          # ensure => $snapshot ? { false => 'present', true => 'absent' },
          before => Package['mumble-server'],
        }
      }
      else {
        # apt::ppa { ['ppa:mumble/snapshot', 'ppa:mumble/release']:
        #   ensure => 'absent'
        # }
      }
      # Missing dependency for 12.04 with PPA
      if $libicu_fix {
        package { 'libicu-dev':
          before => Package['mumble-server'],
        }
      }
    }
    default: {
      fail("${::operatingsystem} is not yet supported.")
    }
  }

  package { 'mumble-server':
    ensure => $version,
  }

  group { $group:
    require => Package['mumble-server'],
  }

  user { $user:
    gid     => $group,
    require => [Group[$group], Package['mumble-server']],
  }

  file { '/etc/mumble-server.ini' :
    owner   => $user,
    group   => $group,
    replace => true,
    content => template('mumble/mumble-server.erb'),
    require => Package['mumble-server'],
  }

  service { 'mumble-server':
    ensure    => running,
    enable    => $autostart,
    subscribe => File['/etc/mumble-server.ini'],
  }

  if $server_password != undef {
    exec { 'mumble_set_password':
      command => "/usr/sbin/murmurd -supw ${server_password}",
      require => Service['mumble-server'],
    }
  }
}