
Als Freifunk Verein haben wir uns vor allem der Wissensvermittlung verschrieben. Bislang geschah der Austausch über Technik vor allem im Verein – nun versuchen wir hier den nächsten Schritt: Wissen allgemein verfügbar zu machen. Daher schreiben wir hier über unsere Erfahrungen mit Ansible und versuchen Euch vom Level 0 weg, beim Aufbau eines Linux-basierten-Routers mit einer breiten Anzahl an verschiedenen Protokollen mit Ansible mitzunehmen.
Unser Gateway “Deusterturm” steht auch nicht am oder im oder auf dem Deusterturm in Kitzingen, sondern wir benennen unsere Gateways eben nach lokalen Bauwerken mit großer Weitsicht. Hat was fränkisches auf der Konsole. Real physikalisch steht dieses Gerät in einem Rechenzentrum in Frankfurt.
Was ist Ansible, wieso hilft uns das und warum verwenden wir das jetzt?
Ansible ist ein Software, mit der man Server und Computer konfigurieren kann. Dabei definiert man vorab, was zu konfigurieren ist und lässt Ansible dann gegen den Computer laufen, der zu konfigurieren ist. Dabei kann man auch Ansible mehrfach gegen den Computer laufen lassen – und selbst wenn die Konfiguration oder Teile davon bereits eingespielt wurden, wird dies erkannt und nicht noch mal eingespielt. Selbst wenn – zum Beispiel für einen schnellen Test – irgendwas schnell per Hand angelegt wurde, stellt Ansible den definierten Zustand aus der Konfiguration wieder her. Dies bietet für uns als Verein den absoluten Vorteil, dass wir in unserer Infrastruktur experimentieren und forschen können – und wenn es nicht funktioniert, gibt es den “Reset”-Knopf per Ansible. Die Konfiguration kann man darüber hinaus mit git versionieren – man kann damit auch alte Versionen und die gesamte Entwicklung der Konfigurationen af den Geräten nachvollziehen.
Ansible ist dabei anders als puppet, chef oder viele andere automatische Konfigurations-Werkzeuge agentenlos. Ansible installiert man sich quasi lokal und konnektiert sich dann per SSH auf das zu konfigurierende Gerät.
Linux-Subsystem für Windows 10
Damit Windows-Benutzer jetzt hier nicht ausgeschlossen werden, wollen wir einmal kurz zum Anfang zeigen, wie ihr mit Windows 10 zum Linux-Benutzer werden könnt – denn Windows 10 bietet inzwischen das Subsystem für Linux-Betriebssysteme, die man sich dann installieren kann. Dann habt ihr in eurem gewohnten Windows 10 ein Debian, Ubuntu oder sonst was Euch an Linux schmeckt. Bei Benutzern von anderen Betriebsystemen gehen wir jetzt mal davon aus, dass diese Starthilfe nicht nötig ist.

In den Einstellungen “Apps” aufrufen

In Apps- und Features dann “Programme und Features” anklicken

In Programme und Features dann “Windows-Features aktrivieren oder deaktivieren” anklicken

In den Windows-Features findet man die Auswahl für “Windows-Subsystem für Linux”. Anchecken und OK, danach einen Neustart durchführen.

Nach dem Neustart kann man im Microsoft Store nach der gewünschen Distribution suchen und diese Installieren.

Das Ubuntu-Subsystem findet man dann ganz normal in der Startleiste.

Hier begrüßt Euch dann das Ubuntu-Subsystem.
Lokale Installation von Ansible
Ansible läuft vor allem unter Linux-Betriebssystemen am besten, auch wenn es viele Portierungen und Möglichkeiten gibt, dies unter iOS und Windows auch direkt zum laufen zu bringen, wollen wir hier vor allem von Linux-Systemen aus darauf arbeiten. Für Windows-Benutzer haben wir gezeigt, wie sie in Ihrem Windows zu Linux-Benutzern werden können.
Die Installation von Ansible in Ubuntu ist relativ einfach.
$ sudo apt update </pre Apt Paketmanager updaten.
$ sudo apt install software-properties-common
Software-Pakete-Abstraktion installieren, damit wir selbst nicht in den Paketquelllisten rumkonfigurieren müssen.
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
Ein neues Repository für Ansible in die Paketverwaltung hinzufügen.
$ sudo apt install ansible
Ansible installieren.
Versionsverwaltung von Ansible-Konfigurationen
In unserem Verein verwenden wir Gitlab um unseren Code und alles von Bedeutung einer Versionsverwaltung zu unterziehen und gemeinsam an Projekten auszutauschen. Wenn Euch nicht klar ist, was Git für Euch erledigt (in die Kommentare schreiben…), können wir dazu mal eine eigene Serie machen, hier nehmen wir mal die grundsätzlichen Vor- und Nachteile des Einsatz von GIT als Versionsverwaltung als gegeben an.
$ sudo apt install git
git installieren (apt geupdated haben wir ja kurz vorher).
$ git --version
Sollte die Versionsnummer zurück geben, dann ist es korrekt installiert.
Danach müsstet Ihr Eurem Git noch sagen, wer Ihr seit, damit Euer Name neben Euren Commits auftaucht:
git config --global user.email "mein.name@freifunk-kitzingen.de" git config --global user.name "Mein Name"
Natürlich müsst ihr hier Euren Namen und Eure Email einsetzen.
Wir gehen hier jetzt auch davon aus, dass ihr irgendwo ein remote Repository habt (eigenes gitlab, cloudbasiertes github oder gitlab, eigentlich egal…). Dieses leere Repo könnt ihr Euch einfach ins Home-Verzeichniss clonen. Die URL oder den SSH-Pfad zum clonen findet ihr meistens in den Web-Oberflächen des Tools, dass ihr da verwendet.
$ git clone https://gitlab.freifunk-kitzingen.de/Pfad/Repo.git $ git clone git@gitlab.freifunk-kitzingen.de:Pfad/Repo.git
Ungefähr so könnten Eure Clone-Befehle aussehen, je nachdem ob Ihr HTTPS oder SSH zum Austausch benutzt.
Und dann wollen wir in das Verzeichniss gehen, dass mit dem Clonen angelegt wurde. Vielleicht findet man dadrin schon eine automatisch angelegte Readme-Datei oder so…
Aber ja, grundsätzlich ist es das schon um mit Ansible voll arbeitsfähig zu sein. Es braucht keine Software-Verwaltungs-Server wie zum Beispiel foreman wenn ihr puppet verwalten wollt oder sonst einen riesigen Vorlauf an Infrastruktur um Software zu verwalten, Ihr könnt quasi damit jetzt anfangen, Eure Geräte, VMs und Netzwerkausrüstung zu konfigurieren – alles was man eben per SSH erreichen kann.
Euch hat dieser Beitrag gefallen? Es fehlt etwas oder man könnte noch etwas besser erklären? Irgendwas ist outdatet und könnte im Beitrag aktualisiert werden? Lasst uns doch einen Kommentar da. Wenn Ihr uns helfen oder Unterstützen wollt, freuen wir uns über eine Mitgliedschaft oder eine Spende.