Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
public:sonstiges:unterhaltung:spiele:switche_versenken [2021/09/19 03:43] – angelegt netali | public:sonstiges:unterhaltung:spiele:switche_versenken [2021/10/14 20:34] (aktuell) – netali | ||
---|---|---|---|
Zeile 44: | Zeile 44: | ||
* Nun kann mit oben genannten Beispielwerten der erste Switch so konfiguriert werden: | * Nun kann mit oben genannten Beispielwerten der erste Switch so konfiguriert werden: | ||
* '' | * '' | ||
+ | |||
+ | ===== Einrichtung des Servers ===== | ||
+ | Für die Erklärung wird von folgenden Beispielwerten ausgegangen (Erläuterungen folgen unten): | ||
+ | * Der Server hat die IP '' | ||
+ | * Die SNMP-Community lautet '' | ||
+ | * Der SNMP-Trap-Handler liegt unter ''/ | ||
+ | * Das Frontend wird unter ''/ | ||
+ | * Das Backend wird unter ''/ | ||
+ | * Das venv für das Backend liegt unter ''/ | ||
+ | * Der WSGI-Socket liegt unter ''/ | ||
+ | * Die systemd-Unit für das Backend liegt unter ''/ | ||
+ | |||
+ | Die Einrichtung erfolgt nun so: | ||
+ | - Software installieren: | ||
+ | * '' | ||
+ | - snmptrapd einrichten: | ||
+ | - Das passende Handle-Script aus [[https:// | ||
+ | * Hier liegen aktuell Handle-Scripts für 2650er und 54er Switche vor. Falls andere Switche verwendet werden, kann mithilfe des dev-handle-Scripts nachgeschaut werden, wie die OIDs für das Linkup-Event und die Portnummer heißen und dann kann entsprechend ein Script abgewandelt werden. | ||
+ | - Die snmptrapd.conf unter ''/ | ||
+ | * < | ||
+ | authCommunity log, | ||
+ | traphandle default / | ||
+ | </ | ||
+ | - snmptrapd aktivieren und starten '' | ||
+ | - Installieren und Konfigurieren des Backends | ||
+ | - Das [[https:// | ||
+ | - Eine MySQL-Datenbank anlegen und mit dem Datenbank-Schema aus dem Backend-Repo befüllen und auch gleich einen MySQL-Benutzer mit Zugriff auf diese DB anlegen | ||
+ | - Ein venv für das Backend anlegen | ||
+ | - '' | ||
+ | - '' | ||
+ | - '' | ||
+ | - '' | ||
+ | - '' | ||
+ | - '' | ||
+ | - Unter Beispielsweise ''/ | ||
+ | * < | ||
+ | from flaskapp.app import app | ||
+ | |||
+ | if __name__ == " | ||
+ | app.run() | ||
+ | </ | ||
+ | - Unter Beispielsweise ''/ | ||
+ | * < | ||
+ | [uwsgi] | ||
+ | chdir = / | ||
+ | wsgi-file = wsgi.py | ||
+ | callable = app | ||
+ | |||
+ | master = true | ||
+ | processes = 5 | ||
+ | |||
+ | socket = / | ||
+ | chmod-socket = 660 | ||
+ | vacuum = true | ||
+ | |||
+ | die-on-term = true | ||
+ | </ | ||
+ | - Socket-Verzeichnis unter Beispielsweise ''/ | ||
+ | - Backend-Beispielconfig kopieren und anpassen | ||
+ | * Die Config befindet sich in diesem Beispiel unter ''/ | ||
+ | * Am Ende muss dort eine Datei namens '' | ||
+ | * Die '' | ||
+ | - Die systemd-Unit für das Backend anlegen (mit unseren Beispielpfaden): | ||
+ | * < | ||
+ | [Unit] | ||
+ | Description=uWSGI Instanz für swv-backend | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | User=www-data | ||
+ | Group=www-data | ||
+ | WorkingDirectory=/ | ||
+ | Environment=" | ||
+ | ExecStart=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | - Die systemd-Unit aktivieren und starten: | ||
+ | * '' | ||
+ | - Installieren und Konfigurieren des Frontends | ||
+ | - Das [[https:// | ||
+ | - Im ausgecheckten Repo unter '' | ||
+ | - Frontend bauen: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | - Den nginx Konfigurieren: | ||
+ | * Erneut mit unseren Beispielwerten: | ||
+ | * < | ||
+ | server { | ||
+ | listen 80 default_server; | ||
+ | listen [::]:80 default_server; | ||
+ | root / | ||
+ | |||
+ | index index.html index.htm index.nginx-debian.html; | ||
+ | |||
+ | server_name _; | ||
+ | |||
+ | location / { | ||
+ | try_files $uri $uri/ =404; | ||
+ | } | ||
+ | | ||
+ | location /api/ { | ||
+ | uwsgi_pass unix:/// | ||
+ | include uwsgi_params; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | - Den nginx reloaden: | ||
+ | * '' | ||
+ | - Fertig (Wenn alles geklappt hat, dann sollte das Spiel nun von beiden Laptops aus unter '' | ||
+ | - Wenn eine Runde fertig ist, kann das Spiel händisch durch das aufrufen von '' | ||