Serverprofielen
Een profiel is de vorm van een machine, één keer opgeschreven in plaats van per server ingetypt: welke rollen hij draait, welke tools hij draagt, hoe zijn database en zijn cache afgesteld staan, en waarmee een nieuwe WordPress-site erop beg
Geschreven voor: Beheerder
Een profiel is de vorm van een machine, één keer opgeschreven in plaats van per server ingetypt: welke rollen hij draait, welke tools hij draagt, hoe zijn database en zijn cache afgesteld staan, en waarmee een nieuwe WordPress-site erop begint.
Je zet er een machine mee op:
root@new:~# corectl setup --profile wordpressen je kunt een bestaande machine erheen verhuizen — daar zitten de interessante regels.
Wat een profiel bepaalt
| Rollen | precies deze set — web, db, mail, dns, ftp, backup |
| Webserver | welke provider, en of LSCache aanstaat |
| Tools | git, Composer, WP-CLI, imapsync, Redis, een Node- of Python-serie |
| Instellingen | de eigen serverinstellingen die het meebrengt, op maat van deze machine |
| PHP-plafonds | de directives waarvan dit soort machine de grens verlegt |
| WordPress | de plugins en de object-cache die een nieuwe site erft |
De lijsten zijn exact, geen minimum. Dat telt het zwaarst voor wat een profiel weglaat: het WordPress-profiel heeft geen mailrol, en die afwezigheid is een besluit, geen vergissing.
De twee profielen
root@web1:~# corectl profile list
Profiles:
shared Shared hosting — websites, databases, mail, DNS and FTP on one machine
on wordpress WordPress hosting — LiteSpeed with LSCache, Redis object cache, MariaDB tuned for InnoDB
This node carries wordpress. `corectl profile status` shows how far it has drifted.
Own presets go in /etc/corecp/profiles/<name>.yaml and win over the built-in one.shared is de alles-in-één machine: websites, hun databases, hun e-mail, hun DNS en FTP, op één server. Dat profiel stelt bewust niets af — een gedeelde node host wat je klanten uploaden, en een instelling die de één helpt ten koste van de rest is geen standaard.
wordpress is een machine die één soort applicatie draait, en die kun je daarvoor afstellen:
- LiteSpeed met LSCache, zodat de cache in de webserver zit, vóór PHP;
- Redis met een geheugenplafond en een opruimregel, zodat een plugin die elke query cachet de machine niet kan omleggen;
- een InnoDB-bufferpool op maat van deze machine in plaats van MariaDB's standaard 128 MB — dat is het grootste verschil tussen een trage en een snelle WordPress;
- geen mailrol. Een WordPress-host is geen mailhost. Sites versturen via een relay en poort 25 blijft dicht.
Een nieuwe WordPress-site op zo'n machine krijgt de plugins LiteSpeed Cache en Redis Object Cache, en de object-cache wordt voor je aangezet. Paginacaching zet CoreCP bewust aan bij de site en niet bij de server: de server weet niet welke cookie "ingelogd" betekent en de cacheplugin wel, en een servicebrede één-seconde-cache is één plugin-update verwijderd van de pagina van een ingelogde bezoeker aan iemand anders tonen.
Een profiel helemaal lezen, inclusief waarom het kiest wat het kiest:
root@web1:~# corectl profile show wordpress
wordpress — WordPress hosting — LiteSpeed with LSCache, Redis object cache, MariaDB tuned for InnoDB
source built into corectl
roles web, db
webserver litespeed (lscache on)
tools composer, git, redis, wp-cli
drop-in mariadb (406 bytes, as rendered for this machine)
drop-in redis (39 bytes, as rendered for this machine)
php policy max_input_vars max 30000
wordpress object cache redis, new sites get litespeed-cache, redis-cache
note Page caching is turned on at the *site*, not at the node. …corectl profile show wordpress --yaml drukt het profiel af precies zoals het geschreven staat — dat is wat je kopieert om er zelf een te maken.
De maten komen van de machine
De database- en cache-instellingen zijn geen vaste getallen maar een percentage van het geheugen dat de server écht heeft, afgerond op iets wat een mens zou intypen:
root@web1:~# corectl profile status
profile wordpress — WordPress hosting — LiteSpeed with LSCache, Redis object cache, MariaDB tuned for InnoDB
memory 3398 MB (what the profile's drop-ins are sized from)
drift none — this node matches its profile3398 MB levert een bufferpool van 960 MB en een Redis-plafond van 320 MB. Geef je de machine meer geheugen, dan past hij zichzelf niet aan — draai corectl profile apply wordpress opnieuw en de instellingen worden met de nieuwe getallen herschreven.
Het profiel van een machine wisselen
Kijk altijd eerst. --dry-run verandert niets en vertelt alles:
root@web1:~# corectl profile apply shared --dry-runErbij zetten is gratis. Een wissel die alleen een rol of een tool toevoegt gaat zonder vragen door.
Weghalen niet. Een rol weghalen betekent breken wat hem nodig heeft — mailboxen, DNS-zones, databases, FTP-logins — en een profielwissel is geen migratie. CoreCP weigert dus, en de weigering zegt precies wat in de weg staat en hoe je elk daarvan vrijmaakt:
root@web1:~# corectl profile apply wordpress
corectl: switching to profile wordpress would take the mail role(s) off this node, and 33 binding(s) still need it:
mail domain voorbeeld.nl (account acme) corectl mail disable voorbeeld.nl
mail mailbox info@voorbeeld.nl (account acme) corectl mailbox delete info@voorbeeld.nl
mail … and 27 more (19 domain, 14 mailbox in total)
Move them to another node first — that is what the panel's service bindings are for, and it keeps the data — or free them with the commands above, or pick a profile that keeps the role. Nothing on this node was changed.Forceren kan niet, en dat is opzet. De weg langs een binding is hem verhuizen — daar is de serverplaatsing in het paneel voor, en dat behoudt de gegevens van de klant. Een geweigerde wissel raakt niets aan: de server staat er precies bij zoals hij stond.
Zit er niets vast, dan mag een rol er gewoon af. De regel gaat over bindingen, niet over de richting.
Een profiel is een startpunt, geen keurslijf
Je mag een machine aanpassen nadat je hem een profiel hebt gegeven. Niets draait dat terug. Wat CoreCP wél doet, is melden dat de machine en zijn profiel uit elkaar zijn gelopen:
root@web1:~# corectl tool add node@24
root@web1:~# corectl profile status
profile wordpress — WordPress hosting — LiteSpeed with LSCache, Redis object cache, MariaDB tuned for InnoDB
memory 3398 MB (what the profile's drop-ins are sized from)
drift 1 difference(s). A profile is a starting point: these are
reported, never undone.
tool node@24 added installed here, not part of the profile
Put the node back on its profile with: corectl profile apply wordpressHetzelfde staat in de gezondheidscontrole als waarschuwing, nooit als fout — een machine waaraan je bewust een extra tool hebt gegeven is niet ziek:
root@web1:~# corectl doctor | grep profile
[warn] profile wordpress — 1 difference(s): tool node@24 added — installed here, not part of the profileEn in het paneel, op de pagina van de server: de profielnaam met een badge die óf geen afwijkingen zegt óf hoeveel het er zijn, met de lijst eronder.
Een machine terugzetten op zijn profiel vraag je zelf, en alleen dan: corectl profile apply wordpress.
Zelf een profiel schrijven
Je eigen profielen staan in /etc/corecp/profiles/ en winnen van het ingebouwde profiel met dezelfde naam — je kunt dus veranderen wat "shared" op jouw vloot betekent zonder op ons te wachten. Begin bij een bestaand profiel:
root@web1:~# mkdir -p /etc/corecp/profiles
root@web1:~# corectl profile show shared --yaml > /etc/corecp/profiles/shared-nl.yaml
root@web1:~# nano /etc/corecp/profiles/shared-nl.yamlZet het veld name: gelijk aan de bestandsnaam — die twee moeten kloppen. De rest is een lijst die je bewerkt:
name: shared-nl
summary: Ons gedeelde platform, met Node voor de deploy-pipelines
roles: [web, db, mail, dns, ftp]
webserver: nginx_apache
tools: [composer, git, imapsync, node@24, redis, wp-cli]Alles wat een profiel noemt wordt gecontroleerd vóórdat er één pakket geïnstalleerd wordt, en je krijgt het in één keer te horen in plaats van één fout per poging:
root@web1:~# corectl profile apply shared-nl --dry-run
corectl: profile shared-nl cannot be applied:
role "mailserver" does not exist (backup, db, dns, ftp, mail, web)
tool "kubernetes": unknown tool "kubernetes" — `corectl tool list` names the catalogueVerder lezen
- Tools op een server — wat een tool is en hoe de lijst werkt.
- Eigen serverinstellingen — de instellingen die een profiel meebrengt, en hoe je er later met de hand een verandert.