FFPB Status-Bot
Der Bot benötigt Python 2 und basiert auf "Willie" welcher unverändert als Git-Submodul eingebunden ist. Hinzugefügt wurden mehrere Plugins (Haupt-Modul: "ffpb") und ein Startup-Skript.
Der Bot geht davon aus, dass er in einem "Maschinenraum"-IRC-Channel arbeitet - kann jedoch zusätzlich Informationen in einem öffentlichen Kanal bereitstellen. Die im Bot konfigurierten Admins haben erweiterte Berechtigungen auch in den ffpb-Plugins, wie z.B. Remote-Execution auf allen Knoten (sofern der SSH-Key des Bots dort hinterlegt ist).
Funktionen
- Status-Abruf
- periodischer Abruf von nodes.json und ALFRED-Daten
- Anzahl Knoten und Clients:
!status
- Highscore #Knoten und #Clients:
!highscore
- Knoten-Information
- allg. Infos (insb. aus ALFRED):
!info <peer>
- MAC und Link zur Statusseite:
!link <peer>
- allg. Infos (insb. aus ALFRED):
- Knoten-Aktionen
- Ping von Peers:
!ping <peer>
- Remote-Execution auf Peers:
!exec-on-peer <peer> <command>
(hierzu muss der SSH-Key des Bots auf dem Knoten hinterlegt sein)
- Ping von Peers:
- Monitoring
- Verwaltung:
!monitor add <peer>
bzw.!monitor del <peer>
- periodischer Ping aller Peers, Meldung falls sich eine Änderung ergibt
- Verwaltung:
- Messaging
- bei entsprechender Konfiguration öffnet der Bot einen TCP-Port, die erste Zeile einer eingehenden Verbindung wird in den Channel geschickt
- Meldungen die mit "PUBLIC: " beginnen werden, sofern vorhanden, in den öffentlichen Kanal gepostet (ohne den Marker)
- Willie-Standardfunktionen für owner/admin:
- Neuladen des FFPB-Moduls:
!reload ffpb
- Nachricht in Channel schreiben:
!msg #channel Nachricht
- Neuladen des FFPB-Moduls:
Module
ffpb
Stellt Kern-Funktionalitäten bereit wie z.B. die periodische Abfrage der aktuellen ALFRED-Daten, Mapping von Name/MAC zu Knoten-Info, etc.
ffpb-monitoring
Monitoring-Funktionen - periodischer Ping von Knoten sowie das Management-Kommando !monitor
.
ffpb-netstatus
Funktionen, die den Status des Netzwerks betreffen - z.B. !status
und !highscore
.
ffpb-nodeinfo
Funktionen, die Auskunft über einzelne Knoten geben - z.B. !info
und !mesh
.
Installation
Dieses Git-Repository wird an beliebiger Stelle geklont (diese Dokumentation geht von /opt/ffpb-statusbot aus):
git clone --recursive https://git.c3pb.de/freifunk-pb/status-bot.git /opt/ffpb-statusbot
Der Bot hat Abhängigkeiten:
apt-get install python-pip python-netaddr python-urllib2
pip install "GitPython>=0.3.2.RC1"
Das Start-Up-Skript erfordert einen der Parameter "start" oder "stop" und eignet sich als Init-Skript:
ln -s /opt/ffpb-statusbot/bot.sh /etc/init.d/ffpb-statusbot
update-rc.d ffpb-statusbot enable
Konfiguration
Die Datei bot.cfg.example
enthält eine Beispiel-Konfiguration und muss für die Benutzung nach bot.cfg
kopiert und angepasst werden. Die wichtigsten Parameter sind nachfolgend erklärt:
core
Willie-Standardkonfiguration (siehe auch)
Parameter | Typ | Beschreibung |
---|---|---|
nick | String | Nickname des Bots |
user | String | Benutzername gegenüber dem IRC-Server |
name | String | "Real Name" des Bots im IRC |
host | String | Host des IRC-Servers |
port | Integer | Port des IRC-Servers |
owner | String | Nickname des Besitzer des Bots |
admins | Liste | weiterer Bot-Admins (kommasepariert, keine Leerzeichen um das Komma setzen!) |
channels | Liste | IRC-Channel die der Bot betritt |
ffpb
Parameter für das ffpb-Zusatzmodul
Parameter | Typ | Beschreibung |
---|---|---|
msg_enable | Boolean | Soll der Messaging-Server aktiviert werden? |
msg_port | Integer | TCP-Port auf dem der Messaging-Server lauscht (Default = 2342) |
msg_target | String | Nutzer/Raum zu dem die Messaging-Zeilen geschickt werden |