'Datenbanken' lautet der Schwerpunkt der Dezember-Ausgabe des IT-Administrator. Darin werfen wir einen Blick auf den Firewall-Schutz und das ... (mehr)

Container anlegen

OpenVZ erstellt neue Container immer aus einem sogenannten Template (auch als Package Set bezeichnet). Dabei handelt es sich um ein vorgefertigtes Bündel aus Anwendungen, das wiederum einfach aus einem Haufen passender RPM-Pakete besteht. OpenVZ unterscheidet zwischen "OS Templates" und "Application Templates": Im ersten Fall umfasst das Template alle Komponenten eines kompletten Linux-Systems, ein "Application Template" enthält hingegen nur die Bestandteile einer einzelnen Anwendung. Application Templates sollen in der Regel einen Container mit weiteren Anwendungen befüllen. Um einen neuen Container erstellen zu können, wählen Sie zunächst ein geeignetes OS-Template aus. Alle mitgelieferten Templates listet der folgende Befehl auf, der genau wie alle anderen Kollegen Root-Rechte benötigt:

$ vzpkg list -O --with-summary

Der Parameter "--with-summary" gibt zu jedem Template eine Beschreibung aus, die in der Regel den Einsatzzweck umreißt. "-O" sorgt dafür, dass nur die OS-Templates erscheinen.

Aus Virtuozzo hat OpenVZ 7.0 das Kommandozeilentool "prlctl" geerbt, mit dem Administratoren ihre Container verwalten. Das zuvor genutzte "vzctl" gilt ab sofort als veraltet und wird in einer der kommenden OpenVZ-Versionen verschwinden. Um einen neuen Container zu erhalten, müssen Sie ihn zunächst mit "prlctl" anlegen:

$ prlctl create MiniDebian --vmtype ct --ostemplate debian-8.0-x86_64-minimal

Hier entsteht nach den Vorgaben aus dem OS-Template "debian-8.0-x86_64-minimal" ein neuer Container mit einem minimalen Debian-System. Der Container erhält dabei den frei wählbaren Namen "MiniDebian", mit dem er sich im Folgenden einfacher ansprechen lässt. "--vmtype ct" legt noch fest, dass "prlctl" einen Container und keine komplette virtuelle Maschine erzeugen soll. Mit "CT" kürzt OpenVZ noch an vielen anderen Stellen den Begriff "Container" ab. Wenn Sie den Parameter "--ostemplate" weglassen, verwendet "prlctl" das in der zentralen Konfigurationsdatei "/etc/vz/vz.conf" vorgegebene OS-Template. Neben dem Standard-Template legt diese Datei auch noch weitere Eckdaten fest, wie etwa das Logging-Verhalten und Disk-Quotas. Informationen über den Container liefert:

$ prlctl list MiniDebian -i

Der Parameter "-i" sorgt dafür, dass OpenVZ sämtliche und nicht nur die wichtigsten Informationen ausgibt. Neben "Home:" steht dabei auch das Verzeichnis, in dem der Container mitsamt seinen Inhalten residiert. Standardmäßig ist dies das Verzeichnis "/vz/private/UUID". Die "UUID" steht dabei für die eindeutige interne Identifikationsnummer (UUID), die automatisch jeder Container erhält. Der eigentliche Inhalt des Containers landet unter OpenVZ 7.0 im Verzeichnis "/vz/private/UUID/root.hdd" in einem Image im QCOW2-Format.

Bild 4: Standardmäßig holt sich das fertig installierte Virtuozzo-Linux seine IP-Adressen via DHCP. Die ihm dabei zugewiesenen Adressen präsentiert auch noch einmal der Anmeldebildschirm.

Container-Verwaltung aufsetzen

Damit das System im Container über das Netzwerk erreichbar ist, sollten Sie im nächsten Schritt ihrer virtuellen Netzwerkschnittstelle eine IPv4- und IPv6-Adresse zuordnen:

$ prlctl set MiniDebian --ipadd 10.0.186.101/24
$ prlctl set MiniDebian --ipadd fe80::20c:29ff:fe01:fb08

Das System im Container besitzt zudem eine eigene Benutzerverwaltung. Um sich gleich im Container anmelden zu können, erstellt der folgende Befehl in ihm ein neues Benutzerkonto für "max" mit dem Passwort "123456":

$ prlctl set MiniDebian --userpasswd max:123456

Damit sind alle Voraussetzungen erfüllt, um den Container zu starten:

$ prlctl start MiniDebian

Jetzt könnten Sie sich per "ssh max@10.0.186.101" im Container anmelden. Das funktioniert allerdings nur, wenn im Container auch der SSH-Daemon läuft. Es ist auch möglich, vom Host aus Kommandos im Container abzusetzen. Der folgende Befehl prüft, ob im Container "MiniDebian" der SSH-Daemon läuft:

$ prlctl exec MiniDebian /etc/init.d/ssh status

Alternativ können Sie mit »prlctl enter MiniDebian« direkt in den Container wechseln. Das funktioniert sogar, wenn der Container über keine (konfigurierte) Netzwerkschnittstelle verfügt. Allerdings sind Sie via »prlctl enter« zunächst immer mit Root-Rechten im Container unterwegs. Die Sitzung verlassen Sie via »exit« . Den kompletten Container stoppt »prlctl stop MiniDebian« , den aktuellen Status erfragen Sie via »prlctl status MiniDebian« . Eine Liste mit allen Containern liefert »prlctl list -a« .

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2020