Linux webhosting datacenter
Workshop
Op 15 december 2023
Introductie
Welkom bij deze datacenter opdracht. In deze workdshop zetten we een 3tier datacenter op voor een webhosting omgeving. Het datacenter bevat 3 servers en 5 netwerken.
In deze cursus configureren wij de volgende servers
- Webserver
- Databaseserver
- Storageserver
en de volgende netwerken
- beheer-netwerk
- database-netwerk
- nfs-netwerk
- iscsi-netwerk
- web-netwerk
De leerdoelen voor deze workshop haal je door het bijwonen van de lessen, het maken van de opdrachten en huiswerk, het geven van een presentatie en vooral door veel zelfstudie. Gebruik je flexuren voor het maken van de opdrachten. Je kunt aan de hand van de rubrics voor verschillende servers zelf bepalen of je voldoende kennis hebt van de gestelde leerdoelen.
Aan het eind van deze workshop heb je gewerkt met o.a. de volgende commando’s.
Om deze opdracht goed te kunnen maken heb je de volgende benodigdheden nodig.
1 Een datacenter
1.1 Het begrip datacenter
1.1.1 Wat is een datacenter
Een datacenter een een ruimte met meerdere servers en netwerkcomponenten waarmee services en functionaliteiten aangeboden worden aan klanten. Een datacenter kan klein zijn zoals bijvoorbeeld één ruimte in een kantoorpand maar een datacenter kan ook het hele gebouw zijn.
1.1.2 De datacenter inrichting
Een datacenter heeft een bepaalde inrichting. Denk hierbij aan de opzet van netwerken en bijbehorenden netwerken. Deze inirchting wordt meestal weergegeven in netwerktekeningen en ip-plannen.
1.2 Het datacenter opzetten
Hoewel een datacenter een fysieke omgeving is kunnen we functionaliteit van een datacenter goed in software nabootsen. Met virtualisatie software bouwen we een virtueel datacenter met virtuele netwerken en servers.
Er zijn verschillende virtualisatie softwareproducten beschikbaar voor Linux, Windows en MacOS. Deze cursus is gebouwd op Virtualbox maar is ook goed uit te voeren in een ander product.
1.2.1 Installleren Virtualbox software
1.2.2 Configureren van de benodigde datacenter netwerken
1.2.3 Configureren van de benodigde servers vms
1.3 Installeren van de servers
1.3.1 Installeren van Ubuntu Server linux
1.3.2 Leer linux basisvaardigheden
Om lekker met Linux te kunnen werken zijn bepaalde basisvaardigheden handig om te leren. Leer deze vaardigheden hier.
1.3.3 Gebruik virtualbox snapshots
Virtualisatie-software geeft de mogelijkheid om snapshots te maken. Snapshots geven de mogelijkheid om een vm te herstellen naar een punt in het verleden. Mocht een server als gevolg van handelingen niet meer werken, dan kan een snapshot gebruikt worden om het systeem terug te zetten naar een situatie waarin het nog wel werkte.
TIP : MAAK SNAPSHOTS VOORDAT JE AAN EEN NIEUWE CONFIGURATIESTAP BEGINT
1.3.4 Configureer de netwerken in de Ubuntu servers
Webserver
Databaseserver
Storageserver
1.3.5 Gebruik PuTTY voor het inloggen
Er zijn meerdere manieren om in te loggen op een linux server.
De eerste methode is via het console. Het console is het scherm dat fysiek is aangesloten op de server. Binnen Virtualbox is dat het scherm dat standaard opent als de server gestart wordt.
De tweede methode is op de CLI via het netwerk. Hiervoor wordt het secure shell (ssh) protocol gebruikt. Op Windows is PuTTY een veel gebruikte tool voor het inloggen met ssh.
man | 755 | 750 | 700 | Maak PuTTY sessie volgens specificaties
man | 755 | 750 | 700 | Configureer PuTTY passwordless login
1.3.6 Maak de servers headless
Als het inloggen om de server via PuTTY lukt, dan kan de server headless worden. Een headless server heeft geen aangesloten beeldscherm.
Bij Virtualbox kan een vm ook headless gemaakt worden. Bij een headless server start virtualbox geen console-scherm meer bij het starten van de vm.
1.4 Datacenter standarisatie
Standarisatie is een belangrijke eigenschap voor systeembeheerders. Door standaarden weet een systeembeheerder dat systemen zich altijd hetzelfde gedragen. Door standarisatie kan een systeembeheerder er ook op vertrouwen dat dezelfde tools aanwezig zijn voor troubleshooting.
Standarisatie komt op meerdere niveaus binnen een datacenter voor. * server-namen * netwerk-name * useraccount-namen * geïnstalleerde software * configuraties
1.4.1 Configureren van standaard Ubuntu instellingen
man | 755 | 750 | 700 | Configureer tijdzone Europe/Amsterdam
man | 755 | 750 | 700 | Disable dynamische Message Of The Day
1.4.2 Installeren van standaard Linux tooling
man | 755 | 750 | 700 | Installeer sysstat - performance monitoring
man | 755 | 750 | 700 | Installeer RKhunter - rootkit scanner
man | 755 | 750 | 700 | Installeer Fail2ban - intrusion prevention protection
2 Webhosting omgeving inrichten
2.1 1Tier inrichten
Het begrip tier geeft aan over hoeveel schijven de functionaliteiten van een omgeving verspreid zijn.
In een 1tier omgeving staan alle functionaliteiten op één server. Denk hierbij aan een omgeving waarbij de webserver- en databassoftware en opslag om één fysieke server staan.
Bij een 2tier en 3tier omgeving worden deze functionaleiten over meerdere servers verspreid. Het getal voor tier geeft aan over hoeveel server de functionaliteiten verspreid worden.
2.1.1 Apache Webserver inrichten
Een webserver heeft webserver-software nodig. Een veel gebruikt product is Apache.
2.1.2 Statische website uitrollen
Een website bestaat uit bestanden waarin de opmaak en inhoud van een website beschreven worden. Deze bestanden staan op de webserver en worden door een webbrowser opgehaald. De webbrowser is ook verantwoordelijk voor het vertalen van de code in deze html, css en js bestanden naar een grafische voorstelling op het scherm van de gebruiker.
man | 755 | 750 | 700 | Optie 1 : Download en deploy statische website met tar
man | 755 | 750 | 700 | Optie 2 : Download en deploy statische website met unzip
2.2 2Tier inrichten
In ons datacenter gaan we een 3tier omgeving opzetten waarin webserver, databaseserver en opslag van elkaar gescheiden zijn.
Als eerste stap hevelen we de storage van de webserver over naar de storageserver.
2.2.1 Storageserver inrichten
De storageserver heeft op dit moment geen opslagmogelijkheden voor de webserverbestanden. We voegen daarom een extra disk toe aan de storageserver zodat we hier de webserverbestanden op kunnen opslaan.
2.2.2 Storageserver als NFS server configureren
2.2.3 Webserver als NFS client configureren
Webserver configureren als nfs client
2.2.4 Documentroot verplaatsen naar nieuwe locatie
man | 755 | 750 | 700 | Optie 1 : Verplaats documentroot met tar
man | 755 | 750 | 700 | Optie 2 : Verplaats documentroot met rsync
man | 755 | 750 | 700 | Optie 3 : Verplaats documentroot met cp
2.2.5 Configureer nieuwe documentroot in Apache
2.3 Dynamische website uitrollen
2.3.1 PHP installeren
2.3.2 Dynamische website schrijven in PHP
man | 755 | 750 | 700 | Schrijf serverstatus.php en serverstatus.css
man | 755 | 750 | 700 | Optie 1 : Download en deploy dynamische website met tar
man | 755 | 750 | 700 | Optie 2 : Download en deploy dynamische website met unzip
man | 755 | 750 | 700 | Optie 3 : Download en deploy dynamische website met git
2.4 Backup inrichten
2.5 3Tier inrichten
2.5.1 Databaseserver inrichten
man | 755 | 750 | 700 | Installeer MariaDB server dmv package
man | 755 | 750 | 700 | Firewall rules voor database-netwerk
man | 755 | 750 | 700 | Schakel Reverse name lookup uit in MariaDB
man | 755 | 750 | 700 | Configureer Name resolution op databaseserver
man | 755 | 750 | 700 | Optioneel: Configureer SSL in MariaDB
2.5.2 Storageserver inrichten
2.5.3 Storageserver configureren als iscsi-target
2.5.4 Databaseserver configureren als iscsi-initiator
2.5.5 iscsi lun in gebruik nemen
2.6 Database-administratie via GUI
2.6.1 Database beheer met SQL
2.7 Webapplicatie uitrollen
man | 755 | 750 | 700 | Schrijf datacenter.php en datacenter.css
man | 755 | 750 | 700 | Optie 1 : Download en deploy webapplicatie met tar
man | 755 | 750 | 700 | Optie 2 : Download en deploy webapplicatie met zip
man | 755 | 750 | 700 | Optie 3 : Download en deploy webapplicatie met git
2.8 Database backups inrichten
2.8.1 Handmatige logical database backup
2.8.2 Automatiseer logical database backup
2.8.3 Handmatige physical database backup
2.8.4 Automatiseer physical database backup
3 Eindopdrachten
3.1 Wordpress Webapplicatie installeren
Configureer in je datacenter een nieuwe server waarop je wordpress installeert. De nieuwe server maakt gebruik van de functionaliteiten in het datacenter. Dit betekent:
- Documentroot staat op de storageserver en wordt via NFS benaderd.
- De database staat op de databaseserver waarbij de fysieke databasebestanden op de storageserver staan en via iSCSI benaderbaar zijn.
3.2 Presenteren
Als laatste opdracht geef je een presentatie van max 15 minuten waarin je uitlegt hoe je de omgeving hebt gemaakt. Je kunt kiezen uit de volgende onderwerpen:
- webserver
- installatie en configuratie van Apache
- configuratie van netwerk en firewall
- configuratie van NFS
- configuratie van cron
- installatie van de verschillende websites (statisch, dynamisch en webapplicatie)
- databaseserver
- installatie en configuratie van MariaDB
- configuratie van netwerk en firewall
- configuratie van iSCSI initiator
- configuratie van anacron
- configuratie van systemd timers
- Verplaatsen van databasebestanden naar iSCSI lun
- storageserver
- configuratie van partities en logical volumes
- configuratie van netwerk en firewall
- configuratie van nfs server
- configuratie van iSCSI target
3.3 Rubrics
Aan de hand van onderstaande rubrics kun je controleren of je klaar bent voor de afsluitende presentatie.
That’s all folks
Gefeliciteerd, je hebt nu een eigen datacenter draaien met een aantal linux servers.
Wij hopen dat je het opzetten van dit datacenter leuk vondt. En dat je inzicht hebt gekregen in de werkzaamheden die een beheerder doet in een datacenter.
Wensenlijstje
De volgende onderwerpen wil ik nog toevoegen aan deze cursus. Zodra ik tijd vind komen de volgende onderwerpen online:
- Een DNS server
- Een monitoring omgeving
- Een webserver dmv docker
- Een DHCP server (lage prio)
- Een ansible omgeving