A.L.F.R.E.D.¶
A.L.F.R.E.D. soll auf allen Gateways im Slave Modus laufen, A.L.F.R.E.D. daemons im Slave Modus senden ihre Daten zum Master. Auf dem Server, der die Freifunk Knotenkarte hostet, läuft der A.L.F.R.E.D. Master.
Darüber hinaus muss auf allen Gateways zusätzlich batadv-vis
im Server Modus laufen.
Dies sorgt dafür, dass jedes Gate seine batman_adv
neighbors und local client table über A.L.F.R.E.D. bekannt gibt.
Ubuntu liefert keine A.L.F.R.E.D. Pakete mit, daher verwenden wir selbstgebaute Pakete.
In unseren Paketen liefern wir für Mainz und Wiesbaden schon vorgefertigte Beispiele.
Defaults beseitigen:
service alfred stop
service batadv-vis stop
rm /etc/default/alfred
rm /etc/init/alfred.conf
rm /etc/init/batadv-vis.conf
Danach kopieren wir die vorgefertigten Beispiele an die richige Stelle:
cp /usr/share/doc/alfred/examples/alfred-mz.default /etc/default/alfred-mz
cp /usr/share/doc/alfred/examples/alfred-wi.default /etc/default/alfred-wi
cp /usr/share/doc/alfred/examples/alfred-mz.upstart /etc/init/alfred-mz.conf
cp /usr/share/doc/alfred/examples/alfred-wi.upstart /etc/init/alfred-wi.conf
cp /usr/share/doc/batadv-vis/examples/batadv-vis-mz.upstart /etc/init/batadv-vis-mz.conf
cp /usr/share/doc/batadv-vis/examples/batadv-vis-wi.upstart /etc/init/batadv-vis-wi.conf
Und anschließend die beiden A.L.F.R.E.D. Instanzen starten:
service alfred-mz start
service alfred-wi start
Durch die Abhängigkeiten in den A.L.F.R.E.D. Upstart Scripts wird dafür gesorgt, dass die batadv-vis Instanzen automatisch mitgestartet und gestoppt werden.
Announcements¶
Die Gateways sollen auch ein paar Daten über sich selbst via Alfred preisgeben, damit die Kartendaten rund werden. Wir danken ffnord an dieser Stelle für die ffnord-alfred-announce Scripte. Wir haben diese unseren Bedürfnissen angepasst und halten sie im Branch mwu vor: ffmwu-alfred-announce-mwu
Nun clonen wir dieses Repo und wechseln in den mwu Branch:
cd ~/clones
git clone https://github.com/freifunk-mwu/ffnord-alfred-announce.git
cd ~/clones/ffnord-alfred-announce && git checkout mwu
Konfiguration¶
Die momentan announcten Daten sind:
Nodeinfo
Hardware
model
Network
ip addresses
primary mac
mesh interfaces
Software
autoupdater (branch/state)
batman_adv version
batman_adv gw_mode
fastd version
firmware (OS Release)
System
role
site_code
Hostname
Node ID
VPN Status
Statistics
clients
gateway (batman has selected)
idletime
loadavg
memory
node_id
processes
traffic
uptime
Da wir die announce scripte mit einem normalen Benutzer ausführen, das Announcen an sich aber root Rechte erfordern benötigen wir die folgenden Wrapper-Sripts:
mkdir ~/bin
~/bin/alfred
#!/bin/sh
exec sudo /usr/sbin/alfred $*
EOCAT
~/bin/alfred-json
#!/bin/sh
exec sudo /usr/bin/alfred-json $*
EOCAT
~/bin/batctl
#!/bin/sh
exec sudo /usr/bin/batctl $*
EOCAT
Nun kann die crontab des Benutzers gefüllt werden (crontab -e). Die Alfred Daten sollten minütlich announced werden:
* * * * * /home/admin/clones/ffnord-alfred-announce/announce.sh -i mzBR -b mzBAT -f mzVPN -s ffmz -u /var/run/alfred-mz.sock > /dev/null 2>&1
* * * * * /home/admin/clones/ffnord-alfred-announce/announce.sh -i wiBR -b wiBAT -f wiVPN -s ffwi -u /var/run/alfred-wi.sock > /dev/null 2>&1