openwisp.wifi_login_pages
ansible-openwisp-wifi-login-pages
Ansible-Rolle zur Bereitstellung und Verwaltung von openwisp-wifi-login-pages.
Benötigte Variablen:
wifi_login_pages_domains: eine Liste mit den Hostnamen, unter denen die App erreichbar ist.wifi_login_pages_organizations_src: lokaler Pfad zum Verzeichnis mit der Konfiguration der Organisationen
Verwendung (Tutorial)
Wenn du nicht weißt, wie man Ansible verwendet, mach dir keine Sorgen, dieses Verfahren führt dich zu einer funktionierenden Installation von openwisp-wifi-login-pages.
Wenn du bereits weißt, wie man Ansible verwendet, kannst du dieses Tutorial überspringen.
Zuerst musst du zwei wichtige Konzepte verstehen:
- Ein "Produktionsserver" ist ein Server (keine Laptop oder Desktop-Computer!) mit öffentlicher ipv4 / ipv6, der zum Hosten von openwisp2 verwendet wird.
- Eine "lokale Maschine" ist der Computer, von dem aus du Ansible ausführst, z.B.: dein eigener Laptop.
Ansible ist ein Konfigurationsmanagement-Tool, das über SSH auf Produktionsserver zugreift. Deshalb musst du es auf der Maschine installieren und konfigurieren, von der aus du die Bereitstellung startest, und diese Maschine muss in der Lage sein, sich per SSH mit dem Produktionsserver zu verbinden.
Ansible wird auf deiner lokalen Maschine ausgeführt und von dort aus wird es sich mit dem Produktionsserver verbinden, um openwisp-wifi-login-pages zu installieren.
Ansible installieren
Installiere Ansible (Version 2.13 oder höher) auf deiner lokalen Maschine (nicht auf dem Produktionsserver!), falls du das noch nicht gemacht hast.
Um Ansible zu installieren empfehlen wir dir, die offizielle Ansible Installationsanleitung zu befolgen. Es wird empfohlen, Ansible über eine virtuelle Umgebung zu installieren, um Abhängigkeitsprobleme zu vermeiden.
Stelle bitte sicher, dass du die richtige Version von Jinja in deiner Python-Umgebung installiert hast:
pip install Jinja>=2.11
Arbeitsverzeichnis wählen
Wähle ein Arbeitsverzeichnis auf deiner lokalen Maschine, in dem du die Konfiguration von openwisp-wifi-login-pages ablegen kannst.
Das wird nützlich sein, wenn du openwisp-wifi-login-pages aktualisieren musst.
Zum Beispiel:
mkdir ~/openwisp-wifi-login-pages-ansible-playbook
cd ~/openwisp-wifi-login-pages-ansible-playbook
Es ist auch eine sehr gute Idee, dieses Arbeitsverzeichnis unter Versionskontrolle zu stellen.
Ansible-Rolle von Ansible Galaxy installieren
ansible-galaxy install openwisp.wifi_login_pages
Erstelle die Inventardatei
Die Inventardatei ist der Ort, an dem Gruppen von Servern definiert werden. In unserem einfachen Fall kommen wir mit nur einer Gruppe aus, in der wir einen Server integrieren.
Erstelle eine neue Datei namens hosts in deinem lokalen Arbeitsverzeichnis (dem gerade erstellten Verzeichnis) mit folgendem Inhalt:
[openwisp-wifi-login-pages]
openwisp-wifi-login-pages.mydomain.com
Erstelle die Playbook-Datei
Erstelle eine neue Playbook-Datei playbook.yml auf deiner lokalen Maschine mit folgendem Inhalt:
- hosts: openwisp-wifi-login-pages
become: "{{ become | default('yes') }}"
roles:
- openwisp.wifi_login_pages
vars:
wifi_login_pages_domains: ["wifi.openwisp.org"]
Die Zeile become: "{{ become | default('yes') }}" bedeutet, dass Ansible das Programm sudo verwendet, um jeden Befehl auszuführen. Du kannst diese Zeile entfernen, wenn du es nicht benötigst (z.B.: wenn du den root-Benutzer auf dem Produktionsserver verwendest).
Du kannst openwisp-wifi-login-pages im Feld hosts durch den Hostnamen deines Produktionsservers ersetzen, wenn du das möchtest.
Die Variable wifi_login_pages_domains ist die einzige erforderliche Variable. Es ist eine Liste mit dem Hostnamen, unter dem die App erreichbar sein wird.
Führe das Playbook aus
Nun ist es Zeit, openwisp-wifi-login-pages auf dem Produktionsserver bereitzustellen.
Führe das Playbook von deiner lokalen Maschine aus mit folgendem Befehl aus:
ansible-playbook -i hosts playbook.yml -u <user> -k --become -K
Ersetze <user> mit dem Benutzernamen deines Produktionsservers.
Das Argument -k erfordert das Programm sshpass.
Du kannst -k, --become und -K weglassen, wenn dein öffentlicher SSH-Schlüssel auf dem Server installiert ist.
Tipps:
- Wenn du einen Fehler wie
Authentication or permission failurebekommst, versuche es als root Benutzer:ansible-playbook -i hosts playbook.yml -u root -k - Wenn du einen Fehler bekommst, der sich auf das Hinzufügen des Host-Fingerabdrucks zur Datei
known_hostsbezieht, kannst du einfach eine SSH-Verbindung zum Host herstellen und mit Ja antworten, wenn du dazu aufgefordert wirst; dann kannst duansible-playbookerneut ausführen.
Bereitstellung von Organisationskonfigurationen und -ressourcen
Für die Bereitstellung von YAML-Konfigurationsdateien für Organisationen und zugehörigen statischen Ressourcen (Logo, CSS usw.) gehe wie folgt vor:
Schritt 1: Wechsle in das Verzeichnis der Ansible-Playbook-Datei.
cd <path_to_playbook_file>
Schritt 2: Erstelle das Verzeichnis files.
mkdir files
Schritt 3: Kopiere alle Konfigurationen und Ressourcen der Organisationen aus dem Verzeichnis organizations in files/owlp_organizations.
cp -r <path_to_organizations_directory> files/owlp_organizations
Bereitstellung von Übersetzungen
Für die Bereitstellung von normalen und benutzerdefinierten Übersetzungen kopiere alle Übersetzungen aus dem Verzeichnis i18n in files/owlp_i18n.
cp -r <path_to_i18n_directory> files/owlp_i18n
Jetzt führe das Playbook aus, und die Dateien werden auf den Remote-Server hochgeladen.
Bereitstellung benutzerdefinierter statischer Inhalte
Für die Bereitstellung benutzerdefinierter statischer Inhalte (HTML-Dateien, PDFs usw.) füge alle statischen Inhalte in das Verzeichnis files/owlp_static ein.
Die Dateien im Verzeichnis owlp_static werden beim Ausführen des Playbooks in das Remote-Verzeichnis static hochgeladen.
So führt man Tests aus
Wenn du zu ansible-openwisp-wifi-login-pages beitragen möchtest, solltest du Tests in deiner Entwicklungsumgebung durchführen, um sicherzustellen, dass deine Änderungen nichts kaputt machen.
Gehe dazu wie folgt vor:
Schritt 1: Klone ansible-openwisp-wifi-login-pages
Klonen des Repositories:
git clone https://github.com/<your_fork>/ansible-openwisp-wifi-login-pages.git
Schritt 2: Installiere Docker
Wenn du Docker noch nicht installiert hast, musst du es installieren (Beispiel für Debian/Ubuntu-Systeme):
sudo apt-get install docker.io
Schritt 3: Installiere Molecule und Abhängigkeiten
pip install molecule[docker] yamllint ansible-lint docker
Schritt 4: Lade Docker-Images herunter
docker pull geerlingguy/docker-ubuntu2404-ansible:latest
docker pull geerlingguy/docker-ubuntu2204-ansible:latest
docker pull geerlingguy/docker-ubuntu2004-ansible:latest
docker pull geerlingguy/docker-debian11-ansible:latest
docker pull geerlingguy/docker-debian12-ansible:latest
Schritt 5: Installiere Ansible-Abhängigkeiten
ansible-galaxy collection install community.docker
Schritt 6: Führe den Molecule-Test aus
molecule test -s local
Wenn du keine Fehlermeldung bekommst, bedeutet das, dass die Tests erfolgreich ohne Fehler ausgeführt wurden.
ProTip: Verwende molecule test --destroy=never, um nachfolgende Testläufe zu beschleunigen.
ansible-galaxy install openwisp.wifi_login_pages