|
|
@@ -4,11 +4,11 @@ categories: Netz-Infrastruktur, Backbone, Supernodes
|
|
|
title: Server-Automatisierung
|
|
|
...
|
|
|
|
|
|
-# Automatisierung der Supernodes und anderer Server (als Link in ff@home einfuegen!)
|
|
|
+# Automatisierung der Konfiguration von Supernodes/Gateways und anderer Server (als Link in ff@home einfuegen!)
|
|
|
|
|
|
-## Aufbau und Konfiguration Steuerungsrechner-Repository-Zielrechner
|
|
|
+## Aufbau und Konfiguration 1) Steuerungsrechner 2) Repository 3) Zielrechner
|
|
|
|
|
|
-Steuerungsrechner
|
|
|
+## 1) Steuerungsrechner
|
|
|
|
|
|
Ein Steuerungsrechner wird mit Python3 und Ansible in einer virtuellen venv-Umgebung verwendet: (überarbeiten)
|
|
|
|
|
|
@@ -65,9 +65,11 @@ Jetzt nutzt pip die isolierte Umgebung:
|
|
|
|
|
|
(venv)~/git/xyz $ pip install <paketname>
|
|
|
|
|
|
-Beispiel:
|
|
|
+oder zum Beispiel:
|
|
|
|
|
|
- (venv)~/git/xyz $ pip install requests
|
|
|
+ (venv)~/git/xyz $ pip install ansible
|
|
|
+
|
|
|
+um genau in diese venv-Umgebung ansible zu installieren.
|
|
|
|
|
|
✅ 5. venv wieder deaktivieren, (venv) erscheint nicht mehr im Prompt:
|
|
|
|
|
|
@@ -75,19 +77,19 @@ Beispiel:
|
|
|
~/git/xyz $
|
|
|
|
|
|
|
|
|
-## Aufbau des Repository
|
|
|
+## 2) 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
|
|
|
+Alle Playbooks werden als root ausgeführt, eine Anmeldung auf den Zielrechnern als root ist grundsätzlich ausgeschlossen und für User nur über ssh möglich.
|
|
|
+Das Passwort für die privilge-escalation, also für sudo ist abgeschaltet. Ein Aufruf für den Server snng-dus03 lautet dann:
|
|
|
|
|
|
(venv)$ ansible-playbook -b ng-gateway.yml -v -l snng-dus03 -u <username>
|
|
|
|
|
|
-und mit Tag
|
|
|
+oder mit einem Tag, um nur ein oder mehrere Teile des Playbooks auszuführen:
|
|
|
|
|
|
- (venv)$ ansible-playbook -b ng-gateway.yml -v -l snng-dus03 --tags "<playbookname>" -u <username>
|
|
|
+ (venv)$ ansible-playbook -b ng-gateway.yml -v -l snng-dus03 --tags "<tagname>" -u <username>
|
|
|
|
|
|
Die anderen dort vorhandenen Playbooks dienen zu Testzwecken.
|
|
|
|
|
|
@@ -99,6 +101,14 @@ Wenn nur wenige Personen im Repo arbeiten, ist es sinnvoll, vor jedem Arbeitstre
|
|
|
Damit werden Forks und evtl. notwendige --rebase vermieden.
|
|
|
|
|
|
|
|
|
+## 3) Zielrechner
|
|
|
+
|
|
|
+Ein Zielrechner oder eine Ziel-VM müssen folgende Elemente als Rohzustand enthalten, damit sie per ansible konfiguriert werden können:
|
|
|
+- ein aktuelles Debian-Betriebssystem
|
|
|
+- eine ip, also einen Netzzugang
|
|
|
+- einen ssh-Zugang für die Personen, die von ihrem Steuerungsrechner aus Playbooks auf dem Zielrechnmer ausführen möchten
|
|
|
+
|
|
|
+
|
|
|
## historischer Stand
|
|
|
|
|
|
Es gab Ansätze eine Community (Supernodes + Map Server) in Ansible zu beschreiben. Das Playbook kann
|