Natenoms Wiki

Weil Teilen Spaß macht :)

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Übersetzungen dieser Seite:

Navigation



Lizenz dieses Wikis
Über dieses Wiki
Feed des Wikis
Impressum


Was gerade in meinem Blog geschieht:

mumble:tools:mumo:mumo-installation

Installation von MuMo (MumbleModerator)

Was ist MuMo?

MuMo ist eine super Sache, vor allem weil es damit sehr einfach ist, eigene Module zu entwickeln um die Funktionalität eines Mumble-Servers zu erweitern. Es scheint relativ unbekannt zu sein und die Installation ist etwas tricky…

Vielleicht hilft ja diese Anleitung weiter, damit man sich voll auf ein eigenes Modul konzentrieren kann und nicht schon vorher aufgibt :)

Es gibt noch weitere Module für MuMo.

Voraussetzungen

  • Wir gehen von einem aktuellen Debian-Squeeze aus; ab dem Punkt „MuMo einrichten“ spielt das System aber eher keine Rolle mehr.
  • Es sollte ein Mumble-Server auf derselben Maschine laufen und Ice aktiviert haben; wie das geht, steht hier: Mumble-Server (Murmur) installieren.

Anleitung

Vorbereitung

Für die ersten Schritte benötigt man root-Rechte.

Benötigte Pakete (auf einem Debian Squeeze):

  • python-zeroc-ice - Python-Bindings, damit man Ice in Python verwenden kann.
  • git-core - Damit holen wir uns die aktuelle Version von MuMo
  • python-daemon - Damit MuMo später als Daemon laufen kann, muss dieses Paket installiert werden.

Man installiert alle Pakete mit:

apt-get install git-core python-zeroc-ice python-daemon

Schon der Sicherheit wegen legen wir einen neuen Benutzer an:

adduser mumo

MuMo holen

Jetzt melden wir uns an dem neu angelegten Account an:

su - mumo

Und clonen uns die Projektdaten von MuMo auf die Platte:

git clone https://github.com/mumble-voip/mumo

Das Ergebnis landet im Unterordner mumo.

MuMo einrichten

Dorthin wechselt man nun:

cd mumo

Murmur.ice

Verwendet man eine Mumble-Server-Version ab 1.2.4, so kann man diese Zeile ignorieren, leer lassen und diesen Abschnitt hier überspringen; in diesem Fall holt sich MuMo die Ice-Schnittstellenbeschreibung direkt vom Mumble-Server.

Damit MuMo funktioniert, braucht es die Schnittstellenbeschreibung für den Mumble-Server (Murmur); diese befindet sich z. B. in Debian nach der Installation des Pakets mumble-server in /usr/share/slice/Murmur.ice.

Hat man jedoch nicht die Paketquellen verwendet, sondern sich eine Static-Version installiert, so sollte man die im Murmur-Archiv vorhandene Datei Murmur.ice z. B. nach /usr/share/slice/Murmur.ice kopieren.

In beiden Fällen muss man entsprechend in der Konfiguration von MuMo den Pfad anpassen:

sed -i 's#slice = Murmur.ice#slice = /usr/share/slice/Murmur.ice#' mumo.ini

Module

Nun muss man ein neues Verzeichnis „modules-enabled“ erstellen.

mkdir modules-enabled

In das gerade erstelle Verzeichnis verlinkt man jetzt die *.ini-Dateien der Module die aktiv sein sollen, z. B.:

cd modules-enabled && ln -s ../modules-available/seen.ini && cd -

Icesecret

Wenn man zur Absicherung von Ice Murmur-seitig ein Passwort verwendet, so muss man dieses noch in der mumo.ini eintragen; es muss das Passwort verwendet werden, welches in der murmur.ini/mumble-server.ini als „icesecretwrite“ hinterlegt ist.
Anscheinend muss hier in jedem Fall ein Passwort hinterlegt werden, da MuMo sonst wohl nicht startet 1).

secret = deinpasswort

Beispiele

Hier als Beispiel eine komplette mumo.ini, anklicken zum Anzeigen:

Anklicken zum Anzeigen

Anklicken zum Anzeigen

;
;Ice configuration
;
[ice]

; Host and port of the Ice interface on
; the target Murmur server.

host = 127.0.0.1
port = 6502

; Slicefile to use (e.g. /etc/slice/Murmur.ice), 
; if empty MuMo will load the slice file from the
; target server at startup.

slice = 

; Semicolon seperated list of slice include directories
; to consider. This is only used on legacy platforms
; with old or broken Ice versions.
slicedirs = /usr/share/slice;/usr/share/Ice/slice

; Shared secret between the MuMo and the Murmur
; server. For security reason you should always
; use a shared secret.

secret =

;Check Ice connection every x seconds

watchdog = 15

[murmur]
; Comma seperated list of server ids to listen on (empty for all)
; note that if a server isn't listed here no events for it can
; be received in any module
servers = 

[modules]
mod_dir = modules/
cfg_dir = modules-enabled/
timeout = 2

[system]
pidfile = mumo.pid


; Logging configuration
[log]
; Available loglevels: 10 = DEBUG (default) | 20 = INFO | 30 = WARNING | 40 = ERROR

level =
file = mumo.log


[iceraw]
Ice.ThreadPool.Server.Size = 5



Und hier der Verzeichnisbaum einer MuMo-Installation mit den für die Module relevanten Teilen, anklicken zum Anzeigen:

Anklicken zum Anzeigen

Anklicken zum Anzeigen

/home/mumo
|-- modules
|   |-- antirec.py
|   |-- antirec.pyc
|   |-- bf2.py
|   |-- deaftoafk.py
|   |-- deaftoafk.pyc
|   |-- idlemove.py
|   |-- idlemove.pyc
|   |-- onjoin.py
|   |-- onjoin.pyc
|   |-- seen.py
|   |-- seen.pyc
|   |-- test.py
|   |-- test.pyc
|   |-- wrongversion.py
|   `-- wrongversion.pyc
|-- modules-available
|   |-- antirec.ini
|   |-- bf2.ini
|   |-- deaftoafk.ini
|   |-- idlemove.ini
|   |-- onjoin.ini
|   |-- seen.ini
|   |-- test.ini
|   `-- wrongversion.ini
|-- modules-enabled
|   |-- antirec.ini -> ../modules-available/antirec.ini
|   |-- deaftoafk.ini -> ../modules-available/deaftoafk.ini
|   |-- seen.ini -> ../modules-available/seen.ini
|   `-- wrongversion.ini -> ../modules-available/wrongversion.ini



MuMo starten

Nun kann man MuMo starten:

python mumo.py -a

Fertig :)

Mit Strg+C beendet man MuMo wieder.

Als Daemon laufen lassen

Hier gibt es zwei Möglichkeiten, empfohlen wird die erste.

Init-Script verwenden

In diesem Abschnitt muss man mit root-Rechten arbeiten oder mit sudo unter Ubuntu.

Das Init-Script wird in MuMo mitgeliefert. 2)

Man kopiert das Script nach /etc/init.d/mumo.

Es ist noch notwendig, den Arbeitspfad im Script an unseren anzupassen, aus

WORKDIR=/opt/mumo

wird

WORKDIR=/home/mumo/mumo

Jetzt macht man das Script ausführbar mit

chmod a+x /etc/init.d/mumo

Und nun aktiviert man es für die entsprechenden Runlevel mittels:

update-rc.d mumo defaults

Beim nächsten Systemstart startet MuMo nun automatisch mit. Um es direkt zu aktivieren, startet man es mit:

/etc/init.d/mumo start

MuMo manuell starten

Damit MuMo als Daemon läuft und sich direkt in den Hintergrund verabschieded, startet man MuMo mit dem Parameter -d:

python mumo.py -d

Weitere Module

Weitere Module für MuMo gibt es z. B. hier: Module für MuMo.

Probleme

Lockfile

Wenn MuMo nicht als Daemon startet und im Logfile z. B. Folgendes steht:

Traceback (most recent call last):
File “mumo.py”, line 535, in
context.__enter__()
File “/usr/lib/pymodules/python2.7/daemon/daemon.py”, line 352, in __enter__
self.open()
File “/usr/lib/pymodules/python2.7/daemon/daemon.py”, line 344, in open
self.pidfile.__enter__()
File “/usr/lib/pymodules/python2.7/lockfile.py”, line 223, in __enter__
self.acquire()
File “/usr/lib/pymodules/python2.7/daemon/pidlockfile.py”, line 109, in acquire
super(TimeoutPIDLockFile, self).acquire(timeout, *args, **kwargs)
File “/usr/lib/pymodules/python2.7/daemon/pidlockfile.py”, line 59, in acquire
super(PIDLockFile, self).acquire(*args, **kwargs)
File “/usr/lib/pymodules/python2.7/lockfile.py”, line 261, in acquire
raise LockTimeout
lockfile.LockTimeout

Dann muss man im MuMo Hauptordner die Datei mumo.pid.lock löschen, dann geht es wieder.

mumble/tools/mumo/mumo-installation.txt · Zuletzt geändert: 2017/11/10 14:32 von Natenom