Inhaltsverzeichnis
Installation von MuMo (MumbleModerator)
Ich habe diese Anleitung im März 2020 aktualisiert und auf einem aktuellen Debian 10.3 ausprobiert. MuMo funktioniert darauf ohne Probleme.
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 gibt noch weitere Module für MuMo.
Voraussetzungen
- Wir gehen von einem aktuellen Debian 10 aus; ab dem Punkt „MuMo einrichten“ spielt das System aber eher keine Rolle mehr.
- Es sollte ein Mumble-Server auf derselben Maschine laufen; 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 10):
- python-zeroc-ice – Python-Bindings, damit man Ice in Python verwenden kann.
- zeroc-ice-slice – Enthält die .ice-Dateien.
- 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. Für die Verwendung der mumo.service ist das Paket nicht notwendig.
Man installiert alle Pakete mit:
apt-get install git-core python-zeroc-ice zeroc-ice-slice python-daemon
Schon der Sicherheit wegen legen wir einen neuen Benutzer an:
adduser mumo
Ice im Mumble-Server aktivieren
Um Ice im Mumble-Server zu aktivieren, muss man die Konfiguration des Mumble-Servers bearbeiten; als root. Auf Debian liegt sie in /etc/mumble-server.ini
.
Dort muss man das #
-Zeichen vor der Zeile ice=„tcp -h 127.0.0.1 -p 6502“
entfernen und den Mumble-Server neustarten mit systemctl restart mumble-server
.
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
Der folgende Abschnitt Info nur für Murmur <1.2.4 anzeigen
ist nur notwendig, wenn man einen Mumble-Server verwendet, der älter ist als Version 1.2.4. Neuere Versionen des Mumble-Servers liefern die Ice-Schnittstellenbeschreibung direkt an MuMo.
</WRAP>
Module aktivieren
Die Liste aller verfügbaren Module findet man in mumo/modules-available/
.
Um ein Modul zu aktivieren, wechselt man zuerst in das Verzeichnis mumo/modules-enabled
und erstellt dann dort einen Symlink auf die .ini-Datei des jeweiligen Moduls in mumo/modules-available
, z. B.:
cd modules-enabled && ln -s ../modules-available/onjoin.ini && cd -
Wenn das Verzeichnis mumo/modules-enabled
nicht existiert, dann erstellt man es mit:
mkdir /home/mumo/mumo/modules-enabled
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:
Und hier der Verzeichnisbaum einer MuMo-Installation mit den für die Module relevanten Teilen, anklicken zum Anzeigen:
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 drei Möglichkeiten, empfohlen wird die erste.
Systemd Service Script
Die folgende Datei legt man ab in /etc/systemd/system/
.
- mumo.service
[Unit] Description=Mumble Moderator After=network.target [Service] User=mumo WorkingDirectory=/home/mumo/mumo/ #PIDFile=/home/mumo/FIXME ExecStart=/usr/bin/python2.7 mumo.py -i mumo.ini --app Restart=always [Install] WantedBy=multi-user.target
Dann führt man als root aus:
systemctl daemon-reload
gefolgt von
systemctl enable mumo.service
System V Init-Script
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.