Ein Grund warum ich den Turris Omnia gekauft habe, ist die Möglichkeit virtuelle Maschinen zu betreiben. Auf diese Weise kann ich Dienste im internen Netzwerk anbieten, die nicht direkt auf dem Router laufen. Zur Virtualisierung nutzt der Turris Omnia LXC (Linux Containers), das im Gegensatz zu anderen Virtualisierungslösungen keine virtuelle Maschinen nutzt, sondern  keine  eine virtuelle Umgebung bereitstellt. In dieser Umgebung können zwar eigenständige Prozesse ausgeführt werden, aber alle LXC-Container nutzen gemeinschaftlich den Kernel des Hostsystems. Die LXC-Virtualisierung ist damit besonders Ressourcen schonend.

1| Container anlegen

LuCI: LXC ContainersWie im HowTo auf turris.cz beschrieben ist die grundlegende Einrichtung eines LXC-Containers wirklich sehr einfach: Über LuCI kann im Menü Services > LXC Containers einfach ein neuer Container angelegt werden (siehe Punkt 1 bis 3 im Screenshot). Es muss lediglich ein Name vergeben und ein Template ausgewählt werden. Ich habe mich für ein Debian entschieden. Direkt nach dem Anlegen des Containers kann das virtualisierte Betriebssystem über die Web-Oberfläche LuCI (Menüpunkt Services > LXC Containers) gestartet werden (siehe Punkt 4 im Screenshot). Alternativ kann er auch über die Kommandozeile angelegt, gestartet und gestoppt werden:

2| Auf Container zugreifen

Nachdem ich den neuen Container gestartet habe, wurde diesem leider keine IP-Adresse per DHCP zugeordnet. Daher stellt sich die Frage wie denn nun auf den Container zugegriffen wird? Ganz einfach: mit dem Kommando lxc-attac h:

3| Netzwerkzugriff einrichten

Da mein Server immer unter der gleichen IP-Adresse erreichbar sein soll, habe ich dem Netzwerkinterface zunächst eine statische IP-Adresse zugeordnet. Dazu muss im Container-OS die Datei /etc/network/interface s angepasst werden:

Nach einem  Reboot des Containers sollte dann auch das Netzwerkinterface korrekt konfiguriert sein und eine Verbindung ins Internet möglich sein:

Mit der Internetverbindung können nun, wie bei Debian üblich, Pakete mit apt-get  installiert werden. Zunächst sollte SSH installiert werden, damit direkt per SSH auf den Container zugegriffen werden kann und der Umweg über das Host-OS und lxc-attach  entfallen kann:

Wie der SSH-Server konfiguriert wird, möchte ich hier nicht weiter beschreiben. Eine entsprechende Anleitung gibt es im Artikel “SSH absichern”. Außerdem bietet es sich an das Betriebssystem nach seinen Vorstellungen anzupassen. Das Gast-Betriebssystem kann wie ein normales Debian Jessie angepasst und konfiguriert werden.

4| Automatischer Start von Containern

Damit der Container beim Reboot des Turris Omnia automatisch mit gestartet wird, muss die Datei /etc/config/lxc-auto folgendermaßen angepasst werden:

Die Konfiguration ist dabei ziemlich eindeutig. Die Option timeout 60  gibt an, dass beim herunterfahren bis zu 60 Sekunden auf ein ordnungsgemäßes beenden des Containers gewartet werden soll. Werden mehrere Container auf dem Turris Omnia betrieben, so können in der Datei auch mehrere container-Abschnitte mit unterschiedlichen name-Optionen eingetragen werden. Auch wenn das HowTo auf turris.czvermuten lässt das nach dem Eintrag der Container beim Reboot automatisch gestartet wird, so muss zu guter letzt noch der Service lxc-auto  auf dem Host aktiviert werden. Am einfachsten ist dies über den Menüpunkt System > Startup in  LuCI (siehe Screenshot).

LuCI: Service lxc-auto