Giter VIP home page Giter VIP logo

puppet-mumble's Introduction

Mumble module for Puppet

Build Status Code Coverage Puppet Forge Puppet Forge - downloads Puppet Forge - endorsement Puppet Forge - scores

Table of Contents

  1. Overview
  2. Module Description
  3. Setup - The basics of getting started with puppet-mumble
  4. Usage - Configuration options and additional functionality
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module

Overview

This module installs the Mumble VoIP server, murmurd.

It is in beta development and tested on Ubuntu 12.04 and 14.04.

Module Description

This module is intended for Ubuntu. If $ppa is true, it adds either the snapshot or release (depending on $snapshot) Mumble PPA, then installs mumble-server, configures it through a template, and starts the service.

Get in touch

Setup

What puppet-mumble affects

  • Packages
    • mumble-server
    • libicu-dev if $libicu_dev (bugfix)
  • PPAs
    • ppa:mumble/release
    • ppa:mumble/snapshot
  • Services
    • mumble-server
  • Files
    • /etc/mumble-server.ini
  • User
    • mumble-server
  • Group
    • mumble-server

Beginning with puppet-mumble

The simplest use of this module is:

include mumble

Usage

Generated puppet strings documentation with examples is available from https://voxpupuli.org/puppet-mumble/

It's also included in the docs/ folder as simple html pages.

This module has one class, mumble, with the following parameters:

$autostart          = true,  # Start server at boot
$ppa                = false, # Install the PPA
$snapshot           = false, # Use snapshot over release PPA
$server_password    = '',    # Supervisor account password

# 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           = undef,    # 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 />',

Note that the mumble-server package by default sets up a user and group named 'mumble-server', and so will be created additionally if the user and group are changed here.

More information about the configuraiton file's settings can be found in the Wiki.

The snapshot parameter enables the use of the snapshot PPA, which as of this writing, seems to fix the bug where libicui-dev was needed but not a dependency.

The server_password parameter sets the supervisor account's password by executing murmurd -supw password, it is not a template configuration, and thus can be set manually as well.

Limitations

This module currently only supports Ubuntu. It is working on my Vagrant box, Ubuntu 12.04.4 LTS with Puppet 3.4.1, and as such it's development is on hold.

If Mumble ever runs without being given an SSL certificate and key, then it will auto-generate its own. If later given a custom certificate and key, the Mumble service must be stopped, and then manually run with the option to wipe the keys from its internal configuration database.

service mumble-server stop
murmurd -wipessl
pkill murmurd
service mumble-server start

Please note that on Debian / Ubuntu, you may want to change USER=mumble-server to USER=root in /etc/init.d/mumber-server so that root owned keys can be read by Mumble on startup, as per this bug. The Mumble daemon automatically drops privileges itself.

Development

Fork on GitHub, make a Pull Request.

puppet-mumble's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

puppet-mumble's Issues

check debian support

this module once listed debian 7 in the metadata.json. We removed it because it's EOL. We need to check if recent debian versions work and add them back.

mumble_set_password fail with exit code 1

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 5.5.10
  • Ruby: ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux-gnu]
  • Distribution: Debian Buster (10)
  • Module version: 2.1.2

How to reproduce (e.g Puppet code you use)

---
# hieradata/node01.fooboozoo.fr
mumble::server_password: 'REDACTED'
mumble::register_name: 'Fooboozoo Mumble Server'
mumble::password: 'passw0rd'
mumble::log_days: '-1'
mumble::ssl_cert: '/var/lib/mumble-server/mumble.fooboozoo.fr.cert'
mumble::ssl_key: '/var/lib/mumble-server/mumble.fooboozoo.fr.key'

What are you seeing

  • mumble_set_password exec fail with exit code 1
  • mumble_set_password exec is not idempotent (this command is executed on each runs)

Output log

# puppet agent --onetime --verbose --ignorecache --no-daemonize --no-usecacheonfailure --no-splay --show_diff --test
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for node01.fooboozoo.fr
Info: Applying configuration version '1568199674'
Notice: /Stage[main]/Mumble/Exec[mumble_set_password]/returns: <W>2019-09-11 13:02:20.232 SSL: OpenSSL version is 'OpenSSL 1.1.1c  28 May 2019'
Notice: /Stage[main]/Mumble/Exec[mumble_set_password]/returns: <W>2019-09-11 13:02:20.232 Initializing settings from /etc/mumble-server.ini (basepath /etc)
Notice: /Stage[main]/Mumble/Exec[mumble_set_password]/returns: <W>2019-09-11 13:02:20.870 MetaParams: TLS cipher preference is "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-SHA:AES128-SHA"
Notice: /Stage[main]/Mumble/Exec[mumble_set_password]/returns: <C>2019-09-11 13:02:20.871 Successfully switched to uid 112
Notice: /Stage[main]/Mumble/Exec[mumble_set_password]/returns: <W>2019-09-11 13:02:20.925 ServerDB: Opened SQLite database /var/lib/mumble-server/mumble-server.sqlite
Notice: /Stage[main]/Mumble/Exec[mumble_set_password]/returns: <W>2019-09-11 13:02:20.925 ServerDB: Using SQLite's default rollback journal.
Notice: /Stage[main]/Mumble/Exec[mumble_set_password]/returns: <F>2019-09-11 13:02:21.011 Superuser password set on server 1
Error: '/usr/sbin/murmurd -supw REDACTED' returned 1 instead of one of [0]
Error: /Stage[main]/Mumble/Exec[mumble_set_password]/returns: change from 'notrun' to ['0'] failed: '/usr/sbin/murmurd -supw REDACTED' returned 1 instead of one of [0]
Notice: Applied catalog in 10.38 seconds

Any additional information you'd like to impart

Starts service on every provision

It would appear that the mumble-server service stops when not in use, and so gets restart on every provision. I don't know if this is a bug or what, but I'll look into it sometime.

registerName option in mumble.ini is not a parameter

registerName
This setting is also used as the "Root" channel name, so you probably want to set it even if you don't want to register your server.

The registerName setting also specifies the "name" of your server in the public server list. The list is no longer sorted alphabetically, so please, in the interests of being user-friendly, don't set it to something silly trying to arbitrarily "rank" your server.

registerName=Super Awesome Mumble Server

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.