Hier werden Skripte gesammelt, die auf den Gates zum Einsatz kommen.
- _etc/dot2json.pl
- Wandelt ein dot file, wie es als Topo aus tinc fällt, in ein json file, wie force directed graph (D3) es erwartet. Nutzt nur stdin und stdout.
Photon Scripte
Die Endungen der Scripte beschreiben auf welchem Typ von Maschine diese i.d.R. laufen sollen:
_gw: | Gateways |
---|---|
_all: | Alle (Gateways, Diensteserver, Buildserver, Webserver, ...) |
Die Installation ist Teil der Gluon Gateway Dokumentation.
- common/ffmwu_defaults.yaml
Die Konfiguration der Backend Scripte für ffmwu.
Sollte man lokale Änderungen vornehmen wollen, nutzt man die nach dem ersten Start von Photon erstellte ffmwu_config.yaml und ersetzt die entsprechenden Werte.
- bootstrap_git_all.py
Zu Beginn sollte man (einmalig) Git einrichten, so dass die anderen Skripte funkionieren.
Erzeugt ein ssh-Keypaar (hostname_rsa, hostname_rsa.pub), und hinterlegt diesen für eiheitlichen Zugriff auf Github in die
~/.ssh/config
. Nicht vergessen, den Schlüssel dem Nutzer ffmwu hinterlegen. Dieser hat über die Gruppe machines Zugriff auf die benötigten RepositoriesRepo-Zugriffs-Syntax:
ssh://github_mwu/freifunk-mwu/backend-scripts.git
- deploy_ssh_all.py
Danach kann man die fehlenden pubkeys der Kollegen nachtragen.
Setzt noch nicht vorhandene Schlüssel aus dem gateway-configs Repository in die
~/.ssh/authorized_keys
.Note
Obwohl theoretisch immer Backups angelegt werden, schaut es in der Praxis meist anders aus.
Es kann auch nicht verhindert werden, dass man sich aus dem eigenen Server aussperrt. Deshalb immer davor eine zweite ssh Verbindung öffnen, und danach immer die Ergebnisse überprüfen!
- sync_meshkeys_gw.py
- Synchronisiert die
peers
-Ordner mit den Git-Repos und lässt fastd danach diepeers
neu einlesen [1]. - check_exitvpn_gw.py
- Setzt das BATMAN Server Flag [1] und startet/stoppt den isc-dhcp-server [1] je nach Erreichbarkeit von gegebenen Hosts durch das ExitVPN.
- update_tinc_conf_gw.py
Holt updates aus dem freifunk icvpn repo, und erstellt eine Konfiguration für tinc.
Startet tinc neu [1], bei einer Änderung in der Konfiguration.
- update_bird_conf_gw.py
Holt updates aus dem freifunk icvpn-meta repo und erstellt mit den Tools aus dem freifunk icvpn-scripts repo eine Konfiguration für bird.
Startet bird neu [1], bei einer Änderung in der Konfiguration.
- update_bind_conf_gw.py
Holt updates aus dem freifunk icvpn-meta repo und erstellt mit den Tools aus dem freifunk icvpn-scripts repo eine Konfiguration für bind.
Startet bind neu [1], bei einer Änderung in der Konfiguration.
- snapshot_configs_all.py
- Füttert das gateway-configs Repository mit Konfigurationsdateien frisch vom Gate.
- gen_website_all.py
- Generiert eine einfache Webseite, und einen Status mit rudimentären Informationen.
- draw_traffic_all.py
Zeichnet vnstat Graphen, und klebt diese in eine Webseite.
Ist nur sinnvoll auf Maschinen mit Verbindung ins Mesh (Gateways, Diensteserver).
Nicht vorhandene Interfaces werden übersprungen, nicht vorhandene vnstat Datenbanken werden erzeugt [1]
- nagg_exitvpn_accouts_all.py
Geht die Liste der ExitVPN Accounts im gateway-configs Repository durch und schickt Mails.
Entweder als Wochenbericht, oder täglich, wenn ein Account droht auszulaufen.
Sollte nur auf einer einzelnen Maschine laufen
- mirror_openwrt_repo_srv.py
Erstellt einen OpenWRT Mirror mit Hilfe von lftp.
Sollte nur auf Service Maschinen laufen. Benötigt viel Speicherplatz.
Allein für stable Barrier Breaker werden ca. 36 GiB benötigt.
[1] | (1, 2, 3, 4, 5, 6, 7) Benötigt dazu Root-Rechte |