Server Installation/vhost-admin: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(Beschreibung des vhost-manage-Skripts)
 
(Debian-Host anlegen)
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 7: Zeile 7:
  
 
= Einrichtung =
 
= Einrichtung =
Die [[Server_Installation/Ansible|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 die [[Server_Installation/Ansible#virtualization-server|Dokumentation der ansible-Rolle]] für eventuell erforderliche ansible-Host-Variablen (z.B. den Namen der LVM-Gruppe).
+
Die [[Server_Installation/Ansible|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 [[Server_Installation/Ansible#virtualization-server|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:
 
Folgende nachträgliche Anpassungen auf dem Virtualisierungsserver sind wahrscheinlich empfehlenswert:
Zeile 24: Zeile 24:
 
       bridge_ports eth0
 
       bridge_ports eth0
 
   iface br-wan inet6 auto
 
   iface br-wan inet6 auto
 +
* Bridge für virtuelle WAN-Interfaces konfigurieren, falls die VMs über den Virtualisierungsserver ins Internet routen sollen:
 +
  auto br-virt-wan
 +
  iface br-virt-wan inet static
 +
      address 172.16.1.1
 +
      netmask 255.255.255.0
 +
      bridge_ports none
 +
  iface br-virt-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)
 
* eventuell in der Datei ''/etc/libvirt/qemu/_template.xml'' Anpassungen vornehmen (z.B. Anpassung der Bridge-Namen oder Hinzufügen der optionalen WAN-Bridge)
  
Zeile 30: Zeile 37:
  
 
== Debian-Host anlegen ==
 
== Debian-Host anlegen ==
<code>vhost-admin.sh create-debian foo 192.168.5.23</code>
+
<code>vhost-admin.sh create-debian <hostname> <opennet-mesh-ip></code>
 
* ein Debian-basiertes System wird via ''debootstrap'' auf einem LVM-Volume vorbereitet
 
* ein Debian-basiertes System wird via ''debootstrap'' auf einem LVM-Volume vorbereitet
 
* Netzwerk wird vorkonfiguriert:
 
* Netzwerk wird vorkonfiguriert:
** eth0: oben angegebene IP-Adresse (Bridge ins opennet-VLAN in der Frieda)
+
** eth0: oben angegebene IP-Adresse (Bridge ins Opennet Mesh Bridge)
 
*** die IP muss zuvor unter [[Server]] reserviert werden
 
*** die IP muss zuvor unter [[Server]] reserviert werden
** eth1: DHCP-Client (nur wirksam, falls eine WAN-Bridge vorhanden ist)
+
** eth1: DHCP-Client (nur wirksam, falls eine WAN Bridge vorhanden ist)
 
** olsrd: automatischer Start für eth0
 
** olsrd: automatischer Start für eth0
 
* root-Schlüssel des Virtualisierungsservers wird importiert
 
* root-Schlüssel des Virtualisierungsservers wird importiert
* der Hostname (''foo'') wird für die Namen der LVM-Volumes und des libvirt-Hosts verwendet
+
* der Hostname wird für die Namen der LVM-Volumes und des libvirt-Hosts verwendet
  
== OpenWRT-Host anlegen ==
+
== OpenWrt-Host anlegen ==
<code>vhost-admin.sh create-ap ap1-23 192.168.1.23</code>
+
<code>vhost-admin.sh create-ap ap1-23 192.168.1.23 latest</code>
** ein openwrt-basiertes System wird mittels eines herunterzuladenden Images vorbereitet
+
* ein openwrt-basiertes System wird mittels eines herunterzuladenden Images vorbereitet
*** das Image kann auch als Firmware-Release-Version angegeben werden (z.B. ''0.4.5'')
+
** das Image kann auch als Firmware-Release-Version angegeben werden (z.B. ''0.5.x'' - siehe <code>vhost-admin.sh list-ap-firmware-versions</code>)
** ein LVM-Image wird als Datenträger erzeugt
+
* ein LVM-Image wird als Datenträger erzeugt
** das openwrt-Image sollte vom Type ''x86-combined-squashfs'' sein (z.B. [[http://downloads.opennet-initiative.de/openwrt/stable/0.5.1/x86/openwrt-x86-generic-combined-squashfs.img.gz]])
+
* mit openwrt-Images vom Typ ''x86-combined-squashfs'' (z.B. [[http://downloads.opennet-initiative.de/openwrt/stable/latest/x86/openwrt-x86-generic-combined-squashfs.img.gz]]) funktioniert die Firmware-Aktualisierung aus dem laufenden System heraus (eventuell gilt das auch für anderen Firmware-Formate)
*** lokale Dateien können via <code>file://DATEINAME</code> referenziert werden (siehe <code>man curl</code>)
+
** lokale Dateien können via <code>file://DATEINAME</code> referenziert werden (siehe <code>man curl</code>)
** das Skript konfiguriert die Netzwerk-Interfaces des AP entsprechend der eingebundenen Hausnetze (eth0: olsr-Mesh, kein LAN)
+
* das Skript konfiguriert die Netzwerk-Interfaces des AP entsprechend der eingebundenen Hausnetze (eth0: olsr-Mesh, kein LAN)
** nach dem Starten des virtuellen Hosts (<code>virsh start ap1-23</code>) ist er unter der gewählten IP in der gesamten OLSR-Wolke erreichbar
+
* nach dem Starten des virtuellen Hosts (<code>virsh start ap1-23</code>) ist er unter der gewählten IP in der gesamten OLSR-Wolke erreichbar
*** die IP muss zuvor unter [[Opennet_Nodes]] reserviert werden
+
** die IP muss zuvor unter [[Opennet_Nodes]] reserviert werden
  
 
== Host löschen ==
 
== Host löschen ==
 
<code>vhost-admin.sh remove ap1-23</code>
 
<code>vhost-admin.sh remove ap1-23</code>
** das virtuelle System (debian- oder openwrt-basiert) wird gestoppt und inklusive der LVM-Images ohne Nachfrage gelöscht
+
* das virtuelle System (debian- oder openwrt-basiert) wird gestoppt und inklusive der LVM-Images ohne Nachfrage gelöscht

Aktuelle Version vom 5. Januar 2019, 20:41 Uhr

Inhaltsverzeichnis

[Bearbeiten] Ü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

[Bearbeiten] 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
  • Bridge für virtuelle WAN-Interfaces konfigurieren, falls die VMs über den Virtualisierungsserver ins Internet routen sollen:
  auto br-virt-wan
  iface br-virt-wan inet static
      address 172.16.1.1
      netmask 255.255.255.0
      bridge_ports none
  iface br-virt-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)

[Bearbeiten] Anlegen oder Löschen von Hosts

Das Skript vhost-admin.sh ermöglicht die vereinfachte Erzeugung und Löschung virtueller Hosts.

[Bearbeiten] Debian-Host anlegen

vhost-admin.sh create-debian <hostname> <opennet-mesh-ip>

  • ein Debian-basiertes System wird via debootstrap auf einem LVM-Volume vorbereitet
  • Netzwerk wird vorkonfiguriert:
    • eth0: oben angegebene IP-Adresse (Bridge ins Opennet Mesh Bridge)
      • 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
  • root-Schlüssel des Virtualisierungsservers wird importiert
  • der Hostname wird für die Namen der LVM-Volumes und des libvirt-Hosts verwendet

[Bearbeiten] OpenWrt-Host anlegen

vhost-admin.sh create-ap ap1-23 192.168.1.23 latest

  • 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 - siehe vhost-admin.sh list-ap-firmware-versions)
  • ein LVM-Image wird als Datenträger erzeugt
  • mit openwrt-Images vom Typ x86-combined-squashfs (z.B. [[1]]) funktioniert die Firmware-Aktualisierung aus dem laufenden System heraus (eventuell gilt das auch für anderen Firmware-Formate)
    • lokale Dateien können via file://DATEINAME referenziert werden (siehe man curl)
  • 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

[Bearbeiten] 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
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge