Machinectl Dev Setup

Ziel

Entwicklung eines leichtgewichtigen Container-Orchestrators namens Ronin, der auf systemd-nspawn basiert. Dieses Setup richtet sich an Entwickler, die auf einem modernen Linux-System (z. B. Ubuntu 25.04) direkt arbeiten möchten – ohne Docker, ohne VM.


Voraussetzungen

Ubuntu 25.04 (x86_64) Root-Zugriff


Notwendige Pakete installieren

BASH
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
sudo apt update
sudo apt install -y \
  systemd-container \
  debootstrap \
  bridge-utils \
  uidmap \
  dbus-user-session \
  systemd-resolved \
  systemd-timesyncd \
  git build-essential
Klicken Sie zum Erweitern und mehr anzeigen

Container-Verzeichnisstruktur vorbereiten

Systemd erwartet Container unter:

BASH
1
/var/lib/machines/
Klicken Sie zum Erweitern und mehr anzeigen

Beispiel:

BASH
1
sudo debootstrap stable /var/lib/machines/debian http://deb.debian.org/debian
Klicken Sie zum Erweitern und mehr anzeigen

Container starten:

BASH
1
sudo systemd-nspawn -M debian
Klicken Sie zum Erweitern und mehr anzeigen

machinectl verwenden

BASH
1
2
3
sudo machinectl start debian
sudo machinectl shell debian
sudo machinectl poweroff debian
Klicken Sie zum Erweitern und mehr anzeigen

Logs anzeigen:

BASH
1
journalctl -M debian
Klicken Sie zum Erweitern und mehr anzeigen

Netzwerk konfigurieren (optional)

Bridge erstellen:

BASH
1
2
sudo ip link add br0 type bridge
sudo ip link set br0 up
Klicken Sie zum Erweitern und mehr anzeigen

Beispiel .nspawn-Datei:

INI
1
2
3
4
5
6
7
# /etc/systemd/nspawn/debian.nspawn
[Exec]
Boot=yes

[Network]
VirtualEthernet=yes
Bridge=br0
Klicken Sie zum Erweitern und mehr anzeigen

Justfile (optional)

MAKEFILE
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
default:
    just --summary

setup:
    sudo apt install -y systemd-container debootstrap bridge-utils

bootstrap name:
    sudo debootstrap stable /var/lib/machines/{{name}} http://deb.debian.org/debian

start name:
    sudo machinectl start {{name}}

stop name:
    sudo machinectl poweroff {{name}}

shell name:
    sudo machinectl shell {{name}}

rebuild name:
    sudo rm -rf /var/lib/machines/{{name}}
    just bootstrap {{name}}
Klicken Sie zum Erweitern und mehr anzeigen

Nützliche Befehle

BefehlZweck
machinectl listContainer anzeigen
machinectl shell nameIn Container einloggen
journalctl -M nameLogs anzeigen
networkctlNetzwerkgeräte anzeigen

Kommentare

Suche starten

Geben Sie Schlüsselwörter ein, um Artikel zu suchen

↑↓
ESC
⌘K Tastenkürzel