Below you will find pages that utilize the taxonomy term “LXD”
Wekan – eine Open Source Trello Alternative
In den letzten Wochen habe ich eine Software ausprobiert, die schon lange auf meiner Liste stand: Wekan. Wekan ist eine Open Source Alternative für Trello, einer Kanban-Software. Mit ihr lassen sich mit der Kanban-Methode Projekte oder Abläufe managen. Manche verwenden es auch als Aufgabenmanagementsystem. Es gibt verschiedene Open Source Alternativen zu Trello – Wekan ist eine, die dem Original am nächsten kommt. Ich möchte heute zeigen, wie man Wekan installiert und einrichtet.
Netzwerkbrücke für LXD Container einrichten
Die meisten unserer Webanwendungen laufen in LXD Containern. Nicht ohne Grund ist LXD für mich eines der wichtigsten Features von Ubuntu Server. Es gibt viele Wege um von außen auf eine Webanwendung in einem LXD Container zuzugreifen. So kann man z.B. einen Reverse Proxy nehmen und darüber die Zugriff auf die Container regeln (hier hatte ich schon mal davon berichtet). Eine andere Möglichkeit ist die Einrichtung einer Netzwerkbrücke, sodass sich die Container im gleichen Netz wie der Containerhost (Ubuntu Server) befinden. In diesem Artikel möchte ich kurz beschreiben, wie man eine Netzwerkbrücke für LXD Container einrichtet.
Backup für LXD-Container
[LXD][1] ist ein Hypervisor für Linuxcontainer, den es seit einigen Versionen in Ubuntu gibt. Ein Linuxcontainer ist im Prinzip wie eine virtuelle Maschine, nur leichtgewichtiger. Wir verwenden LXD / LXC für viele unserer Anwendungen an der Schule. LXD lässt sich leicht bedienen und es gibt so [einige Gründe][2], warum wir es verwenden. Heute möchte ich zeigen, wie man das Backup für LXD-Container machen kann.
1. Möglichkeit: lxc copy
Die einfachste Möglichkeit besteht darin, das man einen LXD-Container einfach auf einen anderen Rechner kopiert. Dazu braucht man einen zweiten LXD-Host, den man auf dem ersten als Remote hinzufügt.
5 Gründe warum wir LXD verwenden
Linuxcontainer und der Container-Hypervisor LXD sind eine meiner Lieblingstechnologien seit Ubuntu 16.04. Wir verwenden [Linuxcontainer][1] bei uns in der Schule für unsere [Webanwendungen oder auch andere Dienste][2]. Es gibt einige Dinge, die ich an LXD sehr mag. Also: Warum LXD?
Einige Dinge, wie Installation, einen ersten Container erstellen usw. habe ich in [diesem kleinen Screencast][3] zusammengefasst:
1. LXC Client und REST API
Neben LXD gibt es noch das Kommandozeilenprogramm lxc
. Es ist sehr einfach zu bedienen und dabei sehr mächtig. Es macht einfach Spaß damit zu arbeiten. lxc
greift dabei auf die Rest API von LXD zurück. Hier ein paar kleine Beispiele:
HAProxy, Nginx, LXD und Let’s Encrypt
In meinem letzten Beitrag habe ich beschrieben, wie man verschiedene Webserver, die in einem LXD Container laufen, von außen über einen Reverse-Proxy (in unserem Fall HAProxy) erreichbar machen kann. Diese Setup läuft aber nur über HTTP (Port 80) und damit über einen unverschlüsselte Verbindung. Heutzutage ist es unabdingbar, dass man seine Website auch verschlüsselt. Deswegen möchte ich heute das Setup erweitern, sodass die Webserver über eine verschlüsselte Verbindung erreichbar sind. HAProxy wird dabei SSL/TLS Termination Proxy agieren, d.h. wir müssen nur an einer Stelle alle unsere Zertifikate verwalten und nicht auf jedem einzelnen Webserver selbst. Der Vorteil ist, dass den Webservern Arbeit durch den Proxy abgenommen wird, allerdings muss man wissen, dass die Kommunikation zwischen HAProxy und den Webservern unverschlüsselt erfolgt. Dieses private Netz sollte als sicher angesehen werden. In unserem Fall ist das das Subnet von LXD, in dem sich die Container befinden. Folgende Grafik veranschaulicht den Prozess:
Wie man mehrere Webseiten mit Nginx und HAProxy mit LXD hosten kann
LXD und Linuxcontainer sind eine meiner Lieblingstechnologien in Ubuntu. In wenigen Sekunden kann man einen neue virtuelle Maschine in einem Container starten. Wir machen davon in [unserer Schule][1] [stark Gebrauch][2]. Fast alle Webanwendungen laufen in einem solchen Container. So haben wir die einzelnen Anwendungen besser getrennt. Weiterhin kann man sehr schnell einen Snapshot eines Containers machen und vieles mehr. Wenn man nun diese verschiedenen Webseiten öffentlich zugänglich machen möchte, gibt es ein Problem, denn i.d.R. hat man nur eine öffentliche IP zur Verfügung (fest bzw. dynamisch). Eine Lösung wäre, dass die Webanwendungen auf verschiedenen Ports laufen, aber das ist nicht unbedingt benutzerfreundlich. In diesem Beitrag möchte ich zeigen, wie man mehrere Webseiten mit Nginx und HAProxy mit LXD hosten kann.
Virtualisierung – Virtuelle Maschine oder Container?
Beim Planen und Nachdenken über die unsere zukünftige Schul-IT begegnete mir unweigerlich auch das Thema Virtualisierung. In den letzten Jahren ist dieses Thema teilweise sehr gehypt worden, wenn man z.B. nur an die Containerlösung Docker denkt. Insgesamt kann man wohl sagen, dass heute wesentlich mehr und häufiger virtualisiert wird, als das noch vor 5 Jahren der Fall war, wo man eher noch auf „bare-metal“ gesetzt hat.
In unserem konkreten Fall wollen wir auch virtualisieren, um die einzelnen Anwendungen auf dem Server besser zu isolieren und zu trennen. Im Opensource-Bereich gibt es einige Lösungen, wie man seine Anwendungen auf dem Server virtualisieren kann. Grundlegend unterscheidet man hier zwischen virtuellen Maschinen (der Hypervisor virtualisiert das ganze OS inkl. Kernel) und Containern (Container nutzen den Kernel des Hosts/Hypervisors). Jede Lösung hat seine Anwendungsszenarien, so kann man z.B. nie ein Windows in einem Container auf einem Linux-Host laufen lassen, da sie unterschiedliche Kernel verwenden. Allerdings kann man CentOS in einem Container auf Ubuntu starten (gleicher Kernel).