Server Installation/vhost-admin
Inhaltsverzeichnis |
Überblick
Wir verwenden auf Opennet-Virtualisierungsserver (siehe Opennet Server) ein (selbsterstelltes) Skript zur vereinfachten Verwaltung von virtuellen Hosts. Dies erlaubt uns die Erzeugung und Löschung von VMs via Komandozeile.
Das Skript geht von folgenden Voraussetzungen aus:
- KVM-basierte Virtualisierung (via libvirt)
- Ablage der Host-Dateisysteme: LVM oder einfache Datei-Images
Einrichtung
Die ansible-Rolle virtualization-server sorgt für die Installation der notwendigen Pakete, die Übertragung des vhost-admin-Skripts, sowie (einmalig) die Übertragung eines libvirt-Templates für neue Hosts. Beachte eventuell die Dokumentation der ansible-Rolle für eventuell erforderliche ansible-Host-Variablen (z.B. die Auswahl der VM-Image-Verwaltung (LVM oder Datei)).
Folgende nachträgliche Anpassungen auf dem Virtualisierungsserver sind wahrscheinlich empfehlenswert:
- Bridge für das Mesh-Interface konfigurieren:
auto br-mesh iface br-mesh inet static address 192.168.10.6 netmask 255.255.0.0 bridge_ports none
- Bridge für das WAN-Interface konfigurieren, falls die VMs direkt mit diesem Netz verbunden werden sollen:
auto br-wan iface br-wan inet static address 139.30.241.XXX netmask 255.255.255.0 gateway 139.30.241.1 bridge_ports eth0 iface br-wan inet6 auto
- eventuell in der Datei /etc/libvirt/qemu/_template.xml Anpassungen vornehmen (z.B. Anpassung der Bridge-Namen oder Hinzufügen der optionalen WAN-Bridge)
Anlegen oder Löschen von Hosts
Das Skript vhost-admin.sh ermöglicht die vereinfachte Erzeugung und Löschung virtueller Hosts.
Debian-Host anlegen
vhost-admin.sh create-debian foo 192.168.5.23
- ein Debian-basiertes System wird via debootstrap auf einem LVM-Volume vorbereitet
- Netzwerk wird vorkonfiguriert:
- eth0: oben angegebene IP-Adresse (Bridge ins opennet-VLAN in der Frieda)
- die IP muss zuvor unter Server reserviert werden
- eth1: DHCP-Client (nur wirksam, falls eine WAN-Bridge vorhanden ist)
- olsrd: automatischer Start für eth0
- eth0: oben angegebene IP-Adresse (Bridge ins opennet-VLAN in der Frieda)
- root-Schlüssel des Virtualisierungsservers wird importiert
- der Hostname (foo) wird für die Namen der LVM-Volumes und des libvirt-Hosts verwendet
OpenWrt-Host anlegen
vhost-admin.sh create-ap ap1-23 192.168.1.23 https://downloads.opennet-initiative.de/openwrt/stable/latest/x86/openwrt-$version-x86-generic-combined-ext4.img.gz (??)
- ein openwrt-basiertes System wird mittels eines herunterzuladenden Images vorbereitet
- das Image kann auch als Firmware-Release-Version angegeben werden (z.B. 0.5.x)
- ein LVM-Image wird als Datenträger erzeugt
- das openwrt-Image sollte vom Type x86-combined-squashfs (warum?) sein (z.B. [[1]])
- lokale Dateien können via
file://DATEINAME
referenziert werden (sieheman curl
)
- lokale Dateien können via
- das Skript konfiguriert die Netzwerk-Interfaces des AP entsprechend der eingebundenen Hausnetze (eth0: olsr-Mesh, kein LAN)
- nach dem Starten des virtuellen Hosts (
virsh start ap1-23
) ist er unter der gewählten IP in der gesamten OLSR-Wolke erreichbar- die IP muss zuvor unter Opennet_Nodes reserviert werden
- ein openwrt-basiertes System wird mittels eines herunterzuladenden Images vorbereitet
Host löschen
vhost-admin.sh remove ap1-23
- das virtuelle System (debian- oder openwrt-basiert) wird gestoppt und inklusive der LVM-Images ohne Nachfrage gelöscht