Je zou bijna denken dat ik deze website vergeten ben, ik plaats niet of nauwelijks updates.
Vergeten ben ik hem niet, maar er was eigenlijk weinig te melden. Tot afgelopen week.
Datacenter
Ik heb thuis een mini data-center draaien, 2 Proxmox servers die samen een Proxmox cluster vormen. Voor wie niet weet wat Proxmox is, en dat is geen schande, het is virtualisatie software. Oftewel software die je kunt gebruiken om virtuele servers te draaien. Met een paar klikken heb je een virtuele server in de lucht en Proxmox regelt dan alles er omheen, zoals netwerk en ook het maken van een back-up van de virtuele server.
Maar Proxmox kan meer, of liever gezegd, heeft meer. Je kunt in Proxmox naast virtuele servers draaien ook Linux containers draaien. Zo’n Linux Container is eigenlijk een uitgeklede server waarin alleen het meest noodzakelijke aanwezig is om een applicatie te kunnen draaien.
Deze Linux containers gebruiken daardoor ontzettend weinig resources. De meeste Linux containers hebben al genoeg aan 8GB storage (disk space), 1 of 2 CPU’s, en 1 à 2 GB geheugen. Uiteraard volledig afhankelijk van de applicatie die in de container gebruikt wordt.
Toen ik een paar jaar geleden begon met Proxmox was dat als vervanging van mijn VMware ESX omgeving, die bestond uit een paar zeer oude Dell servers, die zeer luidruchtig waren en enorm veel stroom verbruikten.
De servers die ik nu gebruik zijn een stuk zuiniger wat elektriciteitsverbruik betreft, ontzettend stil, en ze produceren weinig warmte.
Het zijn in feite 2 stevige PC’s met een gaming moederboard, een CPU met 20 cores en veel geheugen. Heel veel geheugen. Voldoende om de servers die ik op mijn ESX omgeving had draaien ook hier te kunnen draaien.
Nu zul je je misschien afvragen, wat moet zo’n jongen met al dat speelgoed?
En op zich is dat een goede vraag.
In eerste instantie had ik het plan om een OpenShift cluster te installeren, omdat dat vanuit mijn werk iets is waar ik mij mee bezig houdt. En ik thuis een omgeving wilde hebben waar ik wat kennis en ervaring mee op kan doen, en een en ander uit kan testen en proberen. Maar aangezien we op mijn werk gekozen hebben voor gehoste OpenShift omgevingen, was de noodzaak om thuis te kunnen “spelen” niet meer aanwezig. Maar ik heb nog wel een aantal websites die ik host. Onder andere deze site, maar ook websites zoals autonoom.info en youriplate.info. Daarnaast fungeert de webserver ook als reverse proxy voor een aantal websites en web-based applicaties. In feite voor alles wat thuis draait. Of op een virtuele server, of op een Raspberry PI en een web-based interface heeft..
Containers
En Proxmox heeft containers. Althans, je kunt er Linux containers op draaien. En er zijn diverse out-of-the-box templates beschikbaar die je kunt gebruiken om bepaalde applicaties te draaien. Er zijn al een aantal templates beschikbaar via Proxmox die je toe kunt voegen aan je eigen Proxmox omgeving. Vooral gericht op een OS zonder applicaties. Daarnaast zijn er templates beschikbaar van Turnkey.
Turnkey biedt diverse templates aan die je als ISO bestand kunt downloaden en daarmee een server kunt installeren, er zijn ook een aantal templates voor Linux containers beschikbaar. Deze templates bevatten een geïnstalleerde applicatie op Debian.
De images die je download via de site zijn server images, de containers zijn alleen beschikbaar via Proxmox. Het aanbod in containers is beperkter.
Maar nu even terug naar mijn eigen omgeving.
Toen ik met Proxmox begon heb ik een server opgezet om al mijn, hoofdzakelijk op WordPress gebaseerde websites, te kunnen draaien.
De keuze die ik toen gemaakt heb was eigenlijk op dat moment een logisch vervolg op mijn vorige webserver, CentOS met Apache als HTTP server. Het voordeel was dat ik de configuratie bijna 1 op 1 over kon zetten.
Op dat moment leek dat een goede keuze. Achteraf niet. Om een of andere reden had ik problemen met de meest recente versie van CentOS die op dat moment beschikbaar was, versie 9, en was ik min of meer gedwongen om CentOs versie 8 te gebruiken. Die op dat moment al vrij oud was.
Ik had natuurlijk voor een andere distro kunnen kiezen, maar ik was nu eenmaal verknocht aan CentOS, en had daar de meeste ervaring mee.
Dat het niet zo’n goede keuze was, bleek al vrij snel nadat ik de server geïnstalleerd en geconfigureerd had. Nadat alle sites en configuraties van virtuele hosts overgezet waren, wilde ik nog wat additionele zaken oppakken, zoals het installeren van de Zabbix agent zodat de server ook meegenomen wordt in de monitoring.
Nu weet ik niet meer wat exact het probleem was. Of het lukte niet om de Zabbix agent te installeren, of de Agent was te oud om met de Zabbix server te communiceren. In ieder geval monitoren van de server was niet mogelijk. Best wel balen als je kort daar voor een nieuwe server opgetuigd hebt.
Al een tijdje loop ik met het plan om de webserver te gaan vervangen en een nieuwe server in te richten. Ergens zie ik best wel tegen het werk op. Daarnaast was ik ook niet echt tevreden over de keuze die ik in het verleden gemaakt had, alle websites op 1 webserver die ook nog eens als reverse proxy fungeert voor andere omgevingen.
Wanneer ik onderhoud uit moet voeren op de server, of aan de website en de HTTP server moet hiervoor herstart worden, dan heeft dat effect op alle websites.
Aangezien Proxmox LXC containers ondersteunt leek het mij beter om de websites te migreren naar aparte LXC containers. Per website een Linux container met daarin een HTTP server en een database server. Aangezien de meeste websites gebaseerd zijn op WordPress wordt dat dan MySql of MariaDB.
Proxy server
Daarnaast leek het mij ook wel handig om de revesrse proxy als dedicated reverse proxy te laten fungeren, en bij voorkeur dubbel uitgevoerd zodat er bij onderhoud, of een technische storing, altijd een soort van back-up aanwezig is.
Voor dat laatste heb ik een oplossing gevonden in de vorm van HAProxy.
HAProxy is een high performance TCP/HTTP load balancer. Het maakt gebruik van een virtueel IP adres (VIP) dat aan de actieve node toegewezen wordt. De clients maken een connectie met het VIP en komen op die manier op een van de beschikbare proxy servers uit.
Hoe de installatie en configuratie uitgevoerd is, is iets voor een volgende blog.

