In deze handleiding
Leg eisen vast vóór het aanmaken
Noteer ondersteunde Ubuntu-releases, runtimes, databases, extensies, containers en back-up- en monitoringtools. Maak onderscheid tussen leverancierssteun en eigen tests. Kies een passende onderhoudsperiode en controleer of de provider die image en architectuur in de regio aanbiedt.
Ubuntu 24.04 introduceerde standaard Python 3.12, PHP 8.3 en PostgreSQL 16; patchversies veranderen met updates. Oudere software is daarmee niet vanzelf compatibel. De LTS-tabel helpt bij de onderhoudstermijn.
Controleer release en architectuur
Voer deze leescontroles in de VPS uit en bewaar de uitkomst bij je implementatienotities.
cat /etc/os-release
uname -r
dpkg --print-architecture
uname -mSchuif de tabel opzij om alle kolommen te bekijken.
| Uitvoer | Betekenis |
|---|---|
| VERSION_ID in os-release | Geïnstalleerde Ubuntu-release |
| uname -r | De huidige kernel, mogelijk gewijzigd na update en herstart |
| amd64 / x86_64 | Pakket- en machinenaam voor 64-bit x86 |
| arm64 / aarch64 | Pakket- en machinenaam voor 64-bit Arm |
De kernelnaam alleen bepaalt release of onderhoudsdekking niet. Cloudimages kunnen speciale kernels gebruiken. Een amd64-binary draait niet vanzelf native op Arm.
Controleer de initialisatie
Cloud-init kan accounts, sleutels en netwerk instellen. Afwezigheid is niet automatisch een fout; controleer dan de methode van de provider.
if command -v cloud-init >/dev/null 2>&1; then
cloud-init status --long
else
printf '%s\n' 'cloud-init is niet aanwezig; controleer hoe de provider deze image initialiseert.'
fiBij running is de configuratie nog bezig. Onderzoek error of degraded ook wanneer SSH werkt. Bekijk bij een aanwezige cloud-init de relevante logs:
sudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.logInitialisatiescripts kunnen geheimen loggen: scherm die af vóór delen. Gebruik geen cloud-init clean en vervang geen netwerkbestanden om fouten te verbergen. Een voltooide initialisatie bewijst de gezondheid van applicatie of back-up nog niet.
Bekijk pakketkandidaten
Werk metadata bij en controleer de bedoelde componenten. apt update installeert deze applicatiepakketten niet.
sudo apt update
apt-cache policy python3 php postgresql
apt-cache policy python3.12 php8.3 postgresql-16Installed: (none) betekent niet geïnstalleerd; Candidate: (none) betekent niet beschikbaar in de huidige bronnen. Controleer namen, architectuur en Ubuntu-componenten voordat je willekeurig een repository toevoegt.
php en postgresql zijn metapakketten; bekijk ook het pakket met versienummer. Controleer geïnstalleerde executables met python3 --version of php --version. Een databaseclient kan een andere versie hebben dan de draaiende server.
Werk een compatibiliteitsbesluit uit
Stel dat een applicatie uitsluitend Python 3.10 en een amd64-extensie ondersteunt. Dat is een hypothetisch voorbeeld. Ubuntu 24.04 arm64 voldoet dan niet aan twee eisen: standaard Python is 3.12 en de extensie heeft de verkeerde architectuur.
amd64 kiezen lost alleen de architectuur op. Een virtualenv isoleert pakketten met de interpreter waarmee hij is gemaakt; Python 3.12 wordt er geen 3.10 door. Vervang Ubuntu’s systeem-Python niet om de applicatie passend te maken.
Mogelijke routes zijn de applicatie vernieuwen of een afzonderlijk onderhouden runtime/container gebruiken. Controleer ondersteuning van alle native onderdelen. Een oudere release heeft een eigen resterende onderhoudstijd. Test extensie, databasehandeling, achtergrondtaak én herstel in staging; één werkende pagina is onvoldoende.
Plan container- en pakketonderhoud
Containers gebruiken de hostkernel, opslag en netwerk. Kies een ondersteunde build voor je platform; emulatie verandert prestaties en ondersteuning. Bewaar data in vastgelegde volumes of externe opslag en oefen onafhankelijk herstel.
Pin versies of digests voor reproduceerbaarheid, maar plan updates. Standaard Ubuntu-beveiligingsonderhoud, Ubuntu Pro, externe repositories en containerimages hebben verschillende dekking en beheerders. Leg vast wie iedere laag bijwerkt.
Scheid updates van release-upgrades
Ververs eerst pakketmetadata en lees daarna deze controles. Ze voeren geen distributie-upgrade uit.
apt list --upgradable
systemctl --failed
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fiBeoordeel pakketupdates en plan een onderhoudsmoment; services kunnen herstarten. Controleer de applicatie opnieuw. Een ontbrekend reboot-required-bestand bewijst niet dat alles actueel is.
Test een release-upgrade op een kopie of nieuwe VM. Controleer repositories, runtimes, databases en extensies opnieuw. Plan laatste synchronisatie en terugkeer met behoud van nieuwe schrijfacties: een oude snapshot bevat geen latere bestellingen.
Bewaar een reproduceerbaar besluit
Schuif de tabel opzij om alle kolommen te bekijken.
| Onderdeel | Bewaren |
|---|---|
| Systeem | Release, architectuur, kernel en image-ID |
| Applicatie | Build, runtime, lockfiles en herkomst van pakketten |
| Initialisatie | Uitkomst en configuratie zonder geheimen |
| Acceptatie | Geteste handelingen en openstaande fouten |
| Onderhoud | Verantwoordelijke, venster en meldingsontvanger |
| Herstel | Locatie, procedure en laatste geteste restore |
Versioneer niet-geheime configuratie en bouw opnieuw op bij belangrijke wijzigingen. Gebruik de Oracle-procedure voor een geschikt proefaccount of ga door met de eerste website.
Pakketfamilies van Ubuntu 24.04 zijn gedocumenteerde voorbeelden. Controleer actuele kandidaten op de doelimage en test de compatibiliteit van je eigen applicatie.
Veelgestelde vragen
Is Ubuntu 24.04 altijd de beste keuze?
Het is hier het concrete voorbeeld. Kies een onderhouden release die je volledige softwareketen en provider ondersteunen.
Kan ik zonder dataverlies een andere image kiezen?
Herinstallatie vervangt vaak de schijf. Controleer de providerprocedure, exporteer data en test herstel vooraf.
Lost een container elke incompatibiliteit op?
Nee. Architectuur, hostkernel, volumes, netwerk en onderhoud blijven relevant.