|
|
@@ -6,6 +6,90 @@ title: Server-Automatisierung
|
|
|
|
|
|
# Automatisierung der Supernodes und anderer Server
|
|
|
|
|
|
+## Aufbau und Konfiguration Steuerungsrechner-Repository-Zielrechner
|
|
|
+
|
|
|
+Steuerungsrechner
|
|
|
+
|
|
|
+Ein Steuerungsrechner wird mit Python3 und Ansible in einer virtuellen venv-Umgebung verwendet: (überarbeiten)
|
|
|
+
|
|
|
+ ansible [core 2.19.3]
|
|
|
+ config file = /home/m-an/git/snng-roles-l2tp/ansible.cfg
|
|
|
+ configured module search path = ['/home/m-an/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
|
|
|
+ ansible python module location = /home/m-an/git/venv/lib/python3.12/site-packages/ansible
|
|
|
+ ansible collection location = /home/m-an/.ansible/collections:/usr/share/ansible/collections
|
|
|
+ executable location = /home/m-an/git/venv/bin/ansible
|
|
|
+ python version = 3.12.3 (main, Nov 6 2025, 13:44:16) [GCC 13.3.0] (/home/m-an/git/venv/bin/python3)
|
|
|
+ jinja version = 3.1.6
|
|
|
+ pyyaml version = 6.0.3 (with libyaml v0.2.5)
|
|
|
+
|
|
|
+Die Ansibleversion des Steuerungsrechners ausserhalb der venv-Umgebung unterscheidet sich durch die Systemupdates:
|
|
|
+
|
|
|
+ ansible [core 2.19.4]
|
|
|
+ config file = /home/m-an/git/snng-roles-l2tp/ansible.cfg
|
|
|
+ configured module search path = ['/home/m-an/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
|
|
|
+ ansible python module location = /usr/lib/python3/dist-packages/ansible
|
|
|
+ ansible collection location = /home/m-an/.ansible/collections:/usr/share/ansible/collections
|
|
|
+ executable location = /usr/bin/ansible
|
|
|
+ python version = 3.12.3 (main, Nov 6 2025, 13:44:16) [GCC 13.3.0] (/usr/bin/python3)
|
|
|
+ jinja version = 3.1.2
|
|
|
+ pyyaml version = 6.0.1 (with libyaml v0.2.5)
|
|
|
+
|
|
|
+Diese Unterschiede können zu Konflikten bei der Playbookerstellung führen, deshalb sollten während der Erstellung eines Playbooks weder die Ansible- noch die Pythonversion verändert werden.
|
|
|
+
|
|
|
+## Python venv-Umgebung erstellen
|
|
|
+
|
|
|
+✅ 1. Benötigte Pakete installieren
|
|
|
+
|
|
|
+Unter Debian heißt das Paket für virtuelle Umgebungen meist python3-venv:
|
|
|
+
|
|
|
+ $ sudo apt update
|
|
|
+ $ sudo apt install python3-venv
|
|
|
+
|
|
|
+✅ 2. Virtuelle Umgebung erstellen
|
|
|
+
|
|
|
+Wechsle mit cd xyz in den gewünschten Projektordner und führe aus:
|
|
|
+
|
|
|
+ $ python3 -m venv venv
|
|
|
+
|
|
|
+Dadurch entsteht ein Verzeichnis venv/, das alle isolierten Python-Pakete enthält.
|
|
|
+
|
|
|
+✅ 3. venv aktivieren
|
|
|
+
|
|
|
+ $ source venv/bin/activate
|
|
|
+
|
|
|
+Du erkennst die aktivierte venv an der (venv)-Präfix in der Shell.
|
|
|
+
|
|
|
+✅ 4. Pakete installieren
|
|
|
+
|
|
|
+Jetzt nutzt pip die isolierte Umgebung:
|
|
|
+
|
|
|
+ $ pip install <paketname>
|
|
|
+
|
|
|
+Beispiel:
|
|
|
+
|
|
|
+ $ pip install requests
|
|
|
+
|
|
|
+✅ 5. venv wieder deaktivieren
|
|
|
+
|
|
|
+ $ deactivate
|
|
|
+
|
|
|
+
|
|
|
+## Aufbau des Repository
|
|
|
+
|
|
|
+Das Repository ist unter gogs.ffdo.de im Verzeichnis snng-roles-l2tp zu finden. Dieses Repository ist geforkt von ffdo-infrastruktur/ffdo-ansible-l2tp.
|
|
|
+
|
|
|
+Das komplette Playbook zur Erstellung eines Gateways/Supernodes heisst ng-gateway.yml, über Tags können daraus einzelne Playbooks isoliert ausgeführt werden.
|
|
|
+Alle Playbooks werden als root ausgeführt, eine Anmeldung als root ist grundsätzlich ausgeschlossen und für User nur über ssh möglich.
|
|
|
+Das Passwort für die privilge-escalation ist abgeschaltet. Ein Aufruf für den server snng-dus03 lautet dann
|
|
|
+
|
|
|
+ $ ansible-playbook -b ng-gateway.yml -v -l snng-dus03 -u <username>
|
|
|
+
|
|
|
+und mit Tag
|
|
|
+
|
|
|
+ $ ansible-playbook -b ng-gateway.yml -v -l snng-dus03 --tags "<playbookname>" -u <username>
|
|
|
+
|
|
|
+Die anderen dort vorhandenen Playbooks dienen zu Testzwecken.
|
|
|
+
|
|
|
|
|
|
## historischer Stand
|
|
|
|
|
|
@@ -21,4 +105,4 @@ als eigenständige Rollen ausgegliedert und in eigene Repositories abgespalten
|
|
|
Diese Rollen können eigenständig benutzt werden und sollten keine bzw. wenige Abhängigkeiten zu anderen Rollen haben.
|
|
|
Diese Rollen werden auch im oben genannten Playbook wiederverwendet.
|
|
|
|
|
|
-Inzwischen werden die Repos des Freifunk Dortmund unter git.ffdo.de gehostet und dort über git bearbeitet.
|
|
|
+Inzwischen werden die Repos des Freifunk Dortmund unter git.ffdo.de gehostet und dort über git (siehe oben) bearbeitet.
|