FREIFUNK - MÜNCHEN
Die Automatisierung der Infrastruktur basiert zum Großteil auf Saltstack.
Nach dem initialen Setup eines Servers verwenden wir noch ein Ansible Playbook um SSH Keys zu deployen und Saltstack zu installieren. Im Grunde könnte dies aber durch ein pre-seed File gelöst werden.
Die Entscheidung für Saltstack fiel, da andere Communities dies sehr erfolgreich einsetzen und das Konzept von Freifunk Hochstift sehr durchdacht und zukunftssicher klang.
Unsere Source-of-Truth ist dabei Netbox, alle zu Fakten zu den Konfigurationen kommen aus dieser.
Dies ist nur ein winziger Einblick in unseren Saltstack und welche Komponenten er benötigt.
Wie man sieht, wird in unserer Netbox alles gepflegt was mit unseren PoPs (Point-of-Presence) zu tun hat.
Von einem Server werden alle IP-Adressen, Interfaces, Rollen und extra Konfigurationssnippets in der Netbox gepflegt.
Hier ein Screenshot von unserem GW01, wie man sieht ist es in der Rolle „gateway“ und alle Interfaces sind in der Netbox angelegt. Außerdem sieht man, auf welchem physikalischen Host die VM läuft.
Neben den vorgegebenen Feldern von Netbox benutzen wir außerdem stark die Config Contexte, welche einfach JSON Input erwarten. Hier mit lassen sich noch komplexere Probleme lösen, wie zum Beispiel die Zuweisung welche Segmente auf dem Gateway existieren sollen und welchen fastd Port dieses Segment besitzt.
Unseren kompletten Saltstack findet ihr auf Github.
Solltet ihr Fragen dazu haben sprecht uns beim nächsten Treffen an oder kommt in den Chat :).