Acolyte

Aus Stratum 0
Wechseln zu:Navigation, Suche
Acolyte
Beschreibung: Server
Ort: Serverschrank
Status: working (Was heißt das?)
Kontakt: 53c70r

Acolyte ist ein im Space lokaler VM-Host, welcher nach Bedarf angeschaltet werden kann, um z.B. Dinge zu bauen.

Server Doku

OS: CentOS8
Virtualisierung: QEMU/KVM Libvirt
Speicherplatz: 4 Platten als mdadm RAID6 (/dev/md0 ist LUKS encrypted)
IP: 192.168.179.6
MAC: 00:19:99:da:6a:0e

Das Management der VM's erfolgt durch die Nutzung von virt-manager, sowohl für die user, als auch für die admins.
Unprivilegierte user Zugriffe sind limitiert und bieten keine Möglichkeit Einstellungen der jeweiligen VM zu manipulieren oder andere VM's zu sehen.
Mittels SELinux und Polkit werden neue unprivilegierte Nutzer hinzugefügt, denen man dann VM's zuweisen kann.
Ein Beispiel für das Hinzufügen vom user "test":

[root@acolyte ~]# useradd test
[root@acolyte ~]# semanage login -s user_u -a test
[root@acolyte ~]# vim /etc/security/limits.conf

nun in limits.conf am Ende folgendes hinzufügen:

test   hard    cpu     0
test   hard    memlock 102400
test   hard    nproc   20

Nun den user public SSH-Key hinzufügen (nur RSA ist erlaubt):

[root@acolyte ~]# su test
[test@acolyte ~]$ cd ~
[test@acolyte ~]$ umask 022
[test@acolyte ~]$ mkdir .ssh
[test@acolyte ~]$ echo "ssh-rsa AAAAB3NzaC..." > .ssh/authorized_keys

"test" sollte nun in der Lage sein sich auf dem Server einzuloggen.
Nun downloaden wir als admin die gewünschte iso für die VM:

[user@acolyte ~]$ wget -O iso/debian-10.1.0-amd64-netinst.iso https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.1.0-amd64-netinst.iso

Als Nächstes kümmern wir uns um das Aufsetzen der VM von "test".
Dazu verbinden wir uns als admin mittels virt-manager auf den Server und fügen die VM hinzu.
Als "Network selection" sollte "Host device enp6s0: macvtap", "Source mode: Bridge" gewählt werden.
Nun geben wir noch dem user "test" die Freigabe sich auf die VM verbinden zu können:

[root@acolyte ~]# vim /etc/polkit-1/rules.d/51-libvirt.rules

Wir fügen nun zwei Java Script Zeilen in 51-libvirt.rules hinzu;
im zweiten Funktionsblock:

if (subject.user == "test") return polkit.Result.YES;

und im ersten Funktionsblock:

if (a.lookup("domain_uuid") == "cdf9d60b-8cf7-496b-88d4-3ae489969c8f" && s.user == "test") return true;

Die domain_uuid ist als admin unter VM Einstellungen zu sehen.
Der user "test" sollte nun in der Lage sein seine domain zu konfigurieren.

Hardware

Ein in Sachen CPUs, RAM und SSD etwas aufgerüsteter Server auf Basis des Servers aus der Hardwarespende von Alexander.

Server Fujitsu Primergy TX200 S6
CPUs: 2* Intel Xeon E5645 (6 Cores pro CPU, 2 Threads pro Core)
RAM: je CPU 4*4 GB 10600PC3 Samsung DDR3 ECC
Mainboard: D2799-N10 GS4
SSD: 120GB Patriot Burst
HDDs: 4* 500GB WD RE4 von 2012 WD5003ABYX
1* rdx quickstor slot