Page cover image

Testumgebung

Einrichtung einer Test- und Lernumgebung

Egal, ob Sie Salt neu lernen oder Salt bereits im produktiven Einsatz haben. Eine Testumgebung ist unerlässlich. Salt-States sind i. d. R. Kommandos, welche mit Root-Rechten ausgeführt werden. Auf ausführliches Tests dürfen Sie nicht verzichten.

Testumgebungen können mit allen Hypervisoren eingerichtet werden. Linux Container (LXD) stellen eine einfache und effiziente Möglichkeit. LXD stellt komplette Betriebssysteme bereit. Kernel, Hauptspeicher und Festplatte werden mit dem Host geteilt. Das verbraucht deutlich weniger Ressourcen als eine vollwertige Virtualisierung mit VMware, KVM, Virtualbox oder HyperV.

Docker ist keine geeignete Technologie, um Salt zu testen. Salt verwaltet Betriebssysteme. In einem Docker Container werden i.d.R. aber keine kompletten Betriebssysteme bereitgestellt. Beispielsweise verweden Docker Container nicht Systemd. Systemd ist aber ein Standard um Dienste und weitere Teile des Systems zu verewalten.

Incus (LXD) installieren

Melden Sie sich als Root-User am System an.

  1. Systeme älter als 24.04 brauchen ein zusätzlichen Repository (siehe unten).

  2. Installieren Sie Incus mit dem Kommando sudo apt-get --no-install-recommends --no-install-suggests install incus.

  3. Nach der Installation initialisieren Sie Incus mit dem Kommando sudo incus admin init --minimal. Prüfen Sie anschließend mit dem Kommando ip a, ob das Netzwerkgerät incusbr0 erzeugt wurde.

Incus Debian/Ubuntu Repository einbinden

cat <<"EOF"|sudo bash
curl -fsSL https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint
mkdir -p /etc/apt/keyrings/
curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
echo "Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/stable
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/zabbly.asc
"> /etc/apt/sources.list.d/zabbly-incus-stable.sources
EOF

Warum so viele Namen für das Gleiche?

  • Linux-Container (LXC) sind leichtgewichtige Virtualisierungsumgebungen, die Prozesse isolieren, indem sie Kernel-Namespaces und cgroups nutzen.

  • LXC ist die ursprüngliche Container-Implementierung unter Linux, die eine API und Tools für Container-Management bereitstellt.

  • LXD, ein Projekt von Canonical, baut auf LXC auf und bietet eine daemon-basierte Verwaltung mit zusätzlichen Funktionen wie Images und Clustering.

  • Incus ist ein Fork von LXD, der entstand, nachdem Canonical den Fokus von LXD verschoben hatte. Incus wird aktuell bevorzugt, da es unabhängig und aktiv von der Community gepflegt wird, was Stabilität und langfristige Unterstützung gewährleistet.

Container erzeugen und nutzen

Neuen Container mit Ubuntu 24.04 anlegen und starten: incus launch images:ubuntu/noble una

Laufende Container anzeigen: incus ls

Am Container anmelden: incus exec <CONTAINER_NAME> -- bash

Verfügbare Container Images anzeigen: incus image list images: type=container

Weitere Container anlegen

incus launch images:debian/12 delia
incus launch images:rockylinux/9 ruby
incus launch images:opensuse/15.6 susan

Last updated