Skip to content

fatality/limeade

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Einsatz von WebSockets zur Echtzeit-Administration eines Hosting-Clusters
Bachelorarbeit

von Marc Rochow an der Hochschule Augsburg in Kooperation mit SkyLime GbR

Diese Bacheloarbeit stellt ein voll funktionstüchtiges Admininterface für Webhosting Firmen dar.

Einige Features:

Verwaltung und Anlegen von

  • VHosts
  • FTP
  • MySQL Datenbanken
  • Backups
  • Cloud Instanzen
  • Domains
  • SSL Zertifikaten
  • E-mail Adressen, Weiterleitungen und Mailbboxen

Vorraussetzungen (Requirements):

weitere Anforderungen:

Integrierte Anwendungen (Django):

Installation der Anforderungen:

Die Installation der Anforderungen wird beispielhaft für Arch Linux beschrieben.

Celery und django-celery:

$ pip2 install -U Celery
$ pip2 install -U django-celery

pyOpenSSL:

$ pacman -S python2-pyopenssl

lxml:

$ pacman -S python2-lxml

Ipy:

$ pacman -S python2-ipy

libvirt:

Um libvirt und somit auch KVM benutzen zu können, muss der Computer Virtualisierung unterstützen. Dies lässt sich mit folgendem Befehl testen:

$ grep -E "(vmx|svm)" --color=always /proc/cpuinfo

Wenn die Ausgabe korrekt ist und der Computer Virtualisierung unterstützt kann libvirt, KVM und QEMU installiert und eingerichtet werden.

$ pacman -S qemu-kvm libvirt dnsmasq virt-manager

Um dnsmasq korrekt einzurichten empfiehlt sich folgende diese Anleitung.

Libvirt als Normaluser verwenden zu können ist in dieser Anleitung beschrieben.

libvirt und TCP:

Die Datei /etc/libvirt/libvirtd.conf öffnen und folgende Stellen ändern:

listen_tls = 0
listen_tcp = 1
auth_tcp=none

Die Deamon Datei /etc/conf.d/libvirtd öffnen und den Eintrag LIBVIRTD_ARGS in LIBVIRTD_ARGS="--listen" ändern.

Als letzter Schritt die QEMU Konfiguration in libvirt (/etc/libvirt/qemu.conf) öffnen und vnc_listen = "0.0.0.0" eintragen bzw. den Kommentar entfernen.

Als nächstes kann mittels virt-manager eine VM angelegt werden. Die Daten der VM können im Django Admin später eingetragen werden.

RabbitMQ:

In den Arch User Repositories findet sich ein Paket für RabbitMQ welches installiert werden muss.

Anschließend wird der RabbitMQ als root gestartet:

$ rabbitmq-server

Läuft der Server, müssen folgende drei Schritte durchgeführt werden:

$ rabbitmqctl add_user limeade EimequuChuap8aa8ohyo
$ rabbitmqctl add_vhost limeade
$ rabbitmqctl set_permissions -p limeade limeade ".*" ".*" ".*"

Der Server läuft nun und empfängt Nachrichten, leitet diese aber noch nicht weiter. Dazu muss der Deamon limed mittels Celery gestartet werden. In der settings.py müssen dazu noch die Angaben für MySQL gemacht werden, damit völlig automatisch Datenbanken erstellt werden können.

Benutzung:

Sollten Node.js, Python, MySQL, Django und die anderen Abhängigkeiten installiert sein lässt sich die Webanwendung mit Django einrichten. Dazu sollte jedoch eine lokale Konfigurationsdatei erstellt werden. Eine Beispieldatei ist integriert (local_settings.py.example).

Minimal sollte eine Datenbank angelegt werden und folgender Schritt durchgeführt werden:

$ cd web/limeade
$ python2 manage.py syncdb --migrate

Dies erstellt alle Tabellen in der Datenbank und zugleich auch einen Benutzer mit vollen Adminrechten. Starten lässt sich die Anwendung anschließend lokal mit

$ python2 manage.py runserver

Die Webanwendung läuft nun unter http://127.0.0.1:8000/system/ und kann im Admin mit Daten gefüttert werden (http://127.0.0.1:8000/admin/).

Der Node.js Proxy wird im proxy Verzeichnis ebenfalls ausgeführt:

$ node index.js

Zum Abschluss muss RabbitMQ und der Deamon im limed-Verzeichnis gestaret werden:

$ rabbitmq-server
$ celeryd

Releases

No releases published

Packages

No packages published

Languages

  • Python 61.0%
  • JavaScript 39.0%