Acolyte
Acolyte | |
---|---|
Beschreibung: | Server |
Ort: | Serverschrank |
Status: | work in progress (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: CentOS7 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
Die Maschine gilt nach dem Boot zu entschlüsseln, dies funktioniert wie folgt:
pass acolyte/luks | ssh -p 222 192.168.179.6 unlock
für mehr Informationen hier klicken.
Das Management der VM's erfolgt durch die Nutzung von virt-manager, sowohl für die user, als auch für die admin.
User Zugriffe sind Limitiert und bieten keine Möglichkeit Einstellungen der jeweiligen VM zu manipulieren.
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:
[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.
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