Spring naar de hoofdinhoud

Upgrade Ubuntu server van 20.04 naar 22.04

image-1651407064778.png

Op 21 april 2022 werd Ubuntu 22.04 met codenaam 'Jammy Jellyfish', vrijgegeven. In dit artikel gaan we stap voor stap door het upgradeproces van Ubuntu server 20.04 naar 22.04. Ubuntu server 22.04 is de meest recente LTS release en volgt daarmee Ubuntu 20.04 op. Benieuwd naar de release notes? Die vind je hier. De stappen in onderstaand artikel zijn voor de meeste systemen van toepassing.

Voor het upgraden

Voordat we de technische upgrade starten, staan we even stil bij deze puntjes:

  • Ubuntu geeft de raad om te wachten met het updaten van 20.04 naar 22.04 tot de eerste 'point release' 22.04.1 beschikbaar is. Dit om bugs wat niet eerder ontdekt zijn, te kunnen verhelpen en een upgrade zo vlot mogelijk te laten verlopen. Deze point release zal naar verwachting in de late zomer van 2022 beschikbaar zijn.
  • Tijdens de upgrade is je systeem onbeschikbaar. Breng zeker de gebruikers ervan tijdig op de hoogte en plan de upgrade in tijdens een moment dat de server het minst nodig is.
  • Maak een volledige back-up van zowel je configuratie als je data. Upgrade je een virtuele machine, dan kan dat ook gemakkelijk met bv. een snapshot.
  • Doe je de upgrade op afstand, hou er dan rekening mee dat het kan zijn dat je SSH verbinding zal wegvallen. Zorg ervoor dat je kan inloggen via een console of via een lights-out management console.
  • Maak een back-up.
  • Hou een installatiebestand van Ubuntu 22.04 bij de hand wat je kan gebruiken als recovery-medium wanneer je systeem niet meer wilt opstarten na de upgrade.
  • Hebben we al gezegd om een back-up te maken?

Wees aandachtig voor extra repositories

De kans is groot dat je extra repo's toegevoegd hebt. Controleer dit in de map /etc/apt/sources.list.d of in het bestand /etc/apt/sources.list. Hier volgt een voorbeeld van een Zabbix repo:

# cat /etc/apt/sources.list.d/zabbix.list 
deb http://repo.zabbix.com/zabbix/5.0/debian buster main
deb-src http://repo.zabbix.com/zabbix/5.0/debian buster main

Is dat het geval, dan heb je enkele mogelijkheden:

  1. Je controleert bij de ontwikkelaar of hij pakketten voor Jammy beschikbaar heeft.
  2. Je verwijdert de pakketten.
  3. Je doet niets en je hoopt dat de pakketten na de upgrade nog werken.

Optie drie kunnen we uiteraard allerminst aanraden.

Ons advies

We adviseren om te wachten met de upgrade tot de eerste point release Ubuntu 22.04.1 beschikbaar is. Tegen die tijd zullen de meeste software pakketten ook wel aangepaste repo's hebben voor Ubuntu 22.04.

Ook raden we aan om de upgrade te testen. Bijvoorbeeld met een nieuwe (virtuele) server om kennis te krijgen van het updateproces of door je huidige (virtuele) server te klonen en de upgrade daarop te testen. Wil je Ubuntu 22.04 server zelf testen in een virtuele omgeving? Via deze link krijg je bij Hetzner alvast 20 euro tegoed in cloud credits. Dat is voldoende om vijf maanden een virtuele server te draaien!

Het upgradeproces

Om je systeem te upgraden, heb je uiteraard administrator rechten nodig. We raden aan om in te loggen als root-gebruiker.

Stap 1: controleer je huidige Ubuntu versie

Deze handleiding is gericht op het upgraden van Ubuntu 20.04 naar 22.04. Controleer even of je Ubuntu 20.04 geïnstalleerd hebt:

# cat /etc/lsb-release

image-1651402921141.png

Stap 2: werk je systeem volledig bij

Zorg dat je systeem volledig bijgewerkt is:

# apt update
# apt upgrade
# apt dist-upgrade

We raden aan om je systeem een keer volledig te herstarten. Hoewel dit geen vereiste is, is het een goede gewoonte om je systeem voor iedere 'grote' upgrade te herstarten. Zo komen bv. problemen met een bootsector of een hardwaredefect aan het licht.

# reboot

Stap 3: controleer vastgepinde pakketten

Controleer of je bepaalde softwarepakketten vastgepind hebt op een bepaalde versie. Overweeg om deze pin weg te halen zodat ook deze pakketten geupgrade kunnen worden. Deze configuratie vind je terug in /etc/apt/preferences en /etc/apt/preferences.d/.

Controleer ook met:

# apt-mark showhold

Stap 4: open TCP poort 1022

Als je de upgrade via een SSH verbinding uitvoert, dan is het nodig om TCP poort 1022 (inkomend) te openen. Dit is nodig omdat Ubuntu een back-up SSH sessie op deze poort zal starten.

Gebruik je UFW als firewall? Dan open je deze poort als volgt:

# ufw allow 1022/tcp comment 'open port for fallback SSH'

Controleer je actie met:

# ufw status

image-1651402987346.png

Stap 5: start de upgrade

Een upgrade proces kan je eenvoudig starten met het commando do-release-upgrade. Maar Ubuntu zal een upgrade van 20.04 naar 22.04 pas voorstellen vanaf de eerste 'point release' 22.04.1. Volg je deze handleiding op versie 22.04, dan kan je de upgrade starten met:

# do-release-upgrade -d

Als je de update start via een SSH-verbinding, dan krijg je onderstaande waarschuwing. Duw op y om verder te gaan.

image-1651403061519.png

Vervolgens krijg je de melding dat een extra SSH daemon gestart zal worden op poort 1022. Dat is prima, we hebben deze poort ook in onze firewall geopend. Duw op enter om verder te gaan.

image-1651403092320.png

Afhankelijk of je de officiële Ubuntu mirrors gebruikt of de mirrors van je cloud provider, krijg je onderstaande melding. Duw op y om verder te gaan.

image-1651403125233.png

Je server zal nu berekenen welke bestanden er allemaal nodig zijn. Duw op y om verder te gaan.

image-1651403702568.png

Verschillende services zullen herstart worden tijdens de upgrade. Dat is prima. Kies 'Yes' om verder te gaan.

image-1651403756568.png

Afhankelijk van de software wat je op je server geïnstalleerd hebt, zal je een of meerdere keren de vraag krijgen welke actie je wilt ondernemen met bestaande configuratiebestanden. Hieronder zie je een voorbeeld van het bestand 'timesyncd.conf'. Het configuratiebestand 'timesyncd.conf' was al aanwezig, maar de update van timesyncd komt met een nieuwe configuratie.

image-1651404024229.png

We raden aan om in detail de wijzigingen per bestand te bekijken. Onderstaande screenshot toont bijvoorbeeld dat in bestand timesyncd.conf onze opgegeven NTP server verwijderd zal worden. 

image-1651404102357.png

Wanneer je beslist hebt of je de huidige configuratiebestanden al dan niet wilt behouden, vraagt je server vervolgens of je verouderde software wilt verwijderen. Duw op y om verder te gaan.

We raden aan om zeker even de wijzigingen te bekijken en eventueel achteraf manueel de wijzigingen aan te brengen. Noteer daarom goed over welke bestanden dit gaat.

image-1651404452123.png

De upgrade is klaar. Duw op y om je server te herstarten.

image-1651404486398.png

Controleer na de herstart of de upgrade geslaagd is:

# cat /etc/lsb-release
# uname -a

image-1651405026834.png

Nazorg

Verwijder de extra SSH-poort wat we tijdelijk toegevoegd hadden:

# ufw delete allow 1022/tcp
# ufw status

image-1651405250959.png

Heb je tijdens de upgrade nieuwe configuratiebestanden tegengehouden? Dan is nu het moment om te bekijken wat je aan je behouden configuratiebestanden kan aanpassen. Scroll ook even door /var/log/syslog uit om te controleren op onregelmatigheden.