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.
Für die ersten Schritte benötigt man root-Rechte.
Benötigte Pakete (auf einem Debian 10):
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
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
.
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.
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>
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
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
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:
Nun kann man MuMo starten:
python mumo.py -a
Fertig :)
Mit Strg+C beendet man MuMo wieder.
Hier gibt es drei Möglichkeiten, empfohlen wird die erste.
Die folgende Datei legt man ab in /etc/systemd/system/
.
[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
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
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 für MuMo gibt es z. B. hier: Module für MuMo.
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.