-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkvm-libvirt.sh
More file actions
executable file
·94 lines (83 loc) · 2.84 KB
/
kvm-libvirt.sh
File metadata and controls
executable file
·94 lines (83 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/env bash
set -euo pipefail
echo "=== System aktualisieren ==="
sudo apt update
sudo apt -y upgrade
echo "=== KVM / libvirt / Netzwerk-Pakete installieren ==="
sudo apt install -y \
qemu-kvm \
qemu-utils \
libvirt-daemon-system \
libvirt-clients \
libvirt-dev \
virtinst \
bridge-utils \
cpu-checker \
ebtables \
dnsmasq-base \
ovmf \
libguestfs-tools \
libosinfo-bin
echo "=== virt-manager installieren (nur bei vorhandenem Desktop) ==="
if dpkg -l 2>/dev/null | grep -qE '^ii\s+(gdm3|sddm|lightdm|xdm|lxdm)\s'; then
echo "Desktop-Manager erkannt – installiere virt-manager."
sudo apt install -y virt-manager
else
echo "Kein Desktop-Manager gefunden – virt-manager wird übersprungen."
fi
echo "=== Cloud-Init und Cloud-Image-Tools installieren ==="
sudo apt install -y \
cloud-init \
cloud-image-utils \
genisoimage \
xorriso \
whois
echo "=== Prüfen ob KVM unterstützt wird ==="
if kvm-ok >/dev/null 2>&1; then
echo "OK: Hardware-Virtualisierung ist verfügbar."
else
echo "WARNUNG: KVM wird nicht unterstützt oder ist deaktiviert."
fi
echo "=== Benutzer zur libvirt- und kvm-Gruppe hinzufügen ==="
if groups "$USER" | grep -q '\blibvirt\b'; then
echo " $USER ist bereits in der libvirt-Gruppe -> übersprungen"
else
echo " $USER wird zur libvirt-Gruppe hinzugefügt"
sudo usermod -aG libvirt "$USER"
fi
if groups "$USER" | grep -q '\bkvm\b'; then
echo " $USER ist bereits in der kvm-Gruppe -> übersprungen"
else
echo " $USER wird zur kvm-Gruppe hinzugefügt"
sudo usermod -aG kvm "$USER"
fi
echo "=== libvirtd.conf: Socket-Berechtigungen setzen ==="
LIBVIRTD_CONF="/etc/libvirt/libvirtd.conf"
for key in \
unix_sock_group \
unix_sock_ro_perms \
unix_sock_rw_perms \
unix_sock_admin_perms \
unix_sock_dir; do
# Kommentierte Zeile aktivieren (nur wenn noch kommentiert)
sudo sed -i "s|^#\s*\(${key}\s*=.*\)|\1|" "$LIBVIRTD_CONF"
# Sicherstellen dass die Zeile aktiv ist (falls sie komplett fehlte)
if ! grep -qE "^${key}\s*=" "$LIBVIRTD_CONF"; then
echo "WARNUNG: ${key} nicht in ${LIBVIRTD_CONF} gefunden – bitte manuell prüfen."
fi
done
echo "Fertig – betroffene Zeilen in $LIBVIRTD_CONF:"
grep -E "^(unix_sock_group|unix_sock_ro_perms|unix_sock_rw_perms|unix_sock_admin_perms|unix_sock_dir)" "$LIBVIRTD_CONF"
echo "=== libvirtd aktivieren ==="
sudo systemctl enable --now libvirtd
sudo systemctl daemon-reload
sudo systemctl restart libvirtd
echo "=== default-Netzwerk aktivieren ==="
if ! sudo virsh net-info default 2>/dev/null | grep -q "Autostart:.*yes"; then
sudo virsh net-autostart default
fi
if ! sudo virsh net-info default 2>/dev/null | grep -q "Active:.*yes"; then
sudo virsh net-start default
fi
echo "=== Fertig! ==="
echo "Starte dein System neu, damit Gruppenrechte aktiv werden."