CentOS 7 – libvirt – CentOS 7 im LXC Container

Für den Fall, dass man mal schnell eine Test-Umgebung benötigt oder Dienste komplett in eine VM auslagern möchte, bietet sich die leichtgewichtige Container Virtualisierung LXC an.

Vorraussetzung für LXC-Betrieb

LXC setzt ein aktiviertes SE-Linux vorraus. Wir können dies aber etwas vereinfachen indem wir SE-Linux in dem permissive Modus versetzten. Dazu die Datei /etc/selinux/config wie folgt abändern.

Anschliessen muss das System einmal neu gestartet werden!

Weiterhin installieren wir die benötigten Paket libvird und libvirt-client.

Wir aktivieren die installierten Dienste für den automatischen Start bei System-Start und starten die Dienste.

Installation des LXC Filesystems

Zuerst erstellen wir uns einen Ordner indem wir das Filesystem des LXC Containers ablegen. Anschliessend hinterlegen wir ein Repo für Yum um CentOS 7 in diesen Ordner zu installieren.

Im Anschluss installieren wir die Kern-Komponenten von CentOS 7 in den erstellen Ordner.

Das dauert ein paar Minuten. Im Anschluss sind die benötigenden Dateien installiert.

Konfiguration im LXC Filsystem

Bevor wir das CentOS 7 Filesystem mit LXC nutzen können sind noch ein paar Anpassungen nötig. Dazu wechseln wir per chroot in die neue Umgebung und nehmen diese Änderungen vor.

Nun befinden wir uns im chroot. Alle nachfolgenden Anweisungen müssen im chroot des neuen CentOS 7 Filesystems ausgeführt werden.

Setzen des neuen Passworts für den User root.

Anpassungen für den Login per Konsole und per SSH sind ebenfalls nötig.

Es folgt die Netzwerkkonfiguration. Wir werden den LXC Container für DHCP vorbereiten. Eine angepasste Netzwerkkonfiguration mit externer IP folgt in einen anderem Artikel.

Der sshd Dienst wird automatisch gestartet, sodass ein Login auch per ssh möglich ist. Die beiden Dienste avahi-daemon und auditd werden nicht benötigt und daher für den  System-Start deaktiviert.

Anschliessend verlassen wir die chroot Umgebung.

Erstellen einen LXC Containers mit Centos 7

Nachdem wir unsere chroot Umgebung wieder verlassen haben, können wir auf Grundlage unseres bereitgestellten Filesystem ein CentOS 7 innerhalb eines LXC Containers installieren.

Den nun erstellen LXC Container können wir auch gleich betreten.

Centos 7 sollte nun ohne Probleme booten und uns einen Login präsentieren.

Nach dem Login prüfen wir die Netzwerkumgebung. Wir holden uns per dhcp eine IP-Adresse aus dem Pool. Wenn das erfolgt ist, sollten wir ohne Probleme andere IP-Adressen erreichen können.

Wir können nun mit unserem neuen CentOS 7 im LXC Container arbeiten, weitere Programme installieren usw.

Verlassen könnt Ihr den Container wieder mit einen Druck auf CTRL+5! Alternativ kann man den LXC Container auch über SSH unter der nun bekannten IP erreichen.

Start, Stop und Löschen des LXC Containers

Mit den folgenden Befehlen kann man den Container starten, stoppen und löschen.

Um den LXC Container beim Systemstart automatisch zu starten kann man wie in meinen anderen Artikel Autostart eines LXC-Containers beschrieben vorgehen.

Fazit

Ich persönlich nutze ein konfiguriertes Filesystem als Template und Grundlage für weitere LXC Instanzen. Man die kann Bereitstellung sehr einfach mit ein paar Skripten automatisieren. So hat man innerhalb von Sekunden ein oder mehrere funktionierende Testsysteme für ganz verschiedene Szenarien.

Als Vorlage diente das alte Tutorial für CentOS 6. Wie immer lohn ein Blick auf die Projektseite.

Email
Facebook
Google+
https://der-linux-admin.de/2014/08/centos-7-centos-7-im-lxc-container/
Twitter

6 Antworten auf „CentOS 7 – libvirt – CentOS 7 im LXC Container“

  1. Bekomme bei

    echo NEWROOTPW |passwd root --stdin
    folgende Ausgabe:

    Changing password for user root.
    passwd: Authentication token manipulation error

    Außerdem war plymouth und libselinux-python bereits installiert.

    Package plymouth-0.8.9-0.13.20140113.el7.centos.x86_64 already installed and latest version
    Package libselinux-python-2.2.2-6.el7.x86_64 already installed and latest version
    Nothing to do

    Wo liegt das Problem oder kann ich den Fehler von passwd ignorieren?

    P.S.: Sehr gute und hilfreiche Website.

    1. Hallo Andreas,

      vielen Dank für das Lob.
      Die angesprochenen Meldungen kannst Du getrost ignorieren. Falles es dennoch nicht funktionieren sollte kannst Du das Passwort auch in der chroot-Umgebung wie gewohnt mit “password” ändern.
      Wenn die Pakete bereits installiert sind werden diese nicht nochmals installiert.

      Dann viel Spass beim ausprobieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.