{{Hardware
|kontakt = {{Benutzer|53c70r}}
|status = working
|ort = Serverschrank
|beschreibung = Server
|usage = <!-- optional -->
}}

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 root@192.168.179.6 unlock
für mehr Informationen [https://github.com/dracut-crypt-ssh/dracut-crypt-ssh hier] klicken.<br />
Das Management der VM's erfolgt durch die Nutzung von virt-manager, sowohl für die user, als auch für die admins.<br />
Unprivilegierte user Zugriffe sind limitiert und bieten keine Möglichkeit Einstellungen der jeweiligen VM zu manipulieren oder andere VM's zu sehen.<br />
Mittels SELinux und Polkit werden neue unprivilegierte Nutzer hinzugefügt, denen man dann VM's zuweisen kann.<br />
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.<br />
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".<br />
Dazu verbinden wir uns als admin mittels virt-manager auf den Server und fügen die VM hinzu.<br />
Als "Network selection" sollte "Host device enp6s0: macvtap", "Source mode: Bridge" gewählt werden.<br />
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;<br />
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.<br />
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* [https://ark.intel.com/content/www/us/en/ark/products/48768/intel-xeon-processor-e5645-12m-cache-2-40-ghz-5-86-gt-s-intel-qpi.html 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