# Ubuntu

## Hvad det er

Ubuntu er en Linux-distribution udgivet af Canonical: Linux-kernen og de
tusindvis af programmer omkring den, bygget, testet og rettet af én udgiver
efter en kalender, der er kendt på forhånd. Den bygger på Debian, så den bruger
de samme `.deb`-pakker og det samme værktøj, `apt`, til at installere dem, og
lægger sin egen udgivelsesrytme, sine egne standardvalg og et firma, der sælger
support, ovenpå. Det samme arkiv forsyner skriveborde, cloud-images og fysiske
servere; her handler det om serveren.

Udgivelserne er opkaldt efter år og måned, så 24.04 kom i april 2024. Der kommer
en ny hvert halve år, og hvert andet år er apriludgivelsen en LTS-udgivelse med
langtidssupport. Forskellen ligger i, hvor længe løftet holder. En
mellemudgivelse får rettelser i ni måneder. En LTS-udgivelse får fem års
almindelig sikkerhedsvedligeholdelse, som et Ubuntu Pro-abonnement forlænger til
ti år gennem Expanded Security Maintenance, og et Legacy-tilkøb til femten.

På servere vejes Ubuntu typisk op mod to naboer. Debian er forælderen: samme
pakkeformat, men med et fællesskabsprojekt i stedet for et firma bag sig. Red
Hat Enterprise Linux og dens genopbygninger, som AlmaLinux og Rocky Linux, udgør
den anden familie med deres eget pakkeformat og egne værktøjer. At vælge mellem
de tre er mest at vælge en kalender, en supportaftale og de vaner, holdet
allerede har.

## Hvorfor det betyder noget

Når valget er faldet på Ubuntu, står spørgsmålet tilbage, hvilken Ubuntu, og
svaret fastlægger vedligeholdelsesbudgettet i årevis.

Servere hører hjemme på LTS-udgivelser. En mellemudgivelse udløber ni måneder
efter, at den kom, så en server, der følger dem, skal igennem en
udgivelsesopgradering to gange om året for at blive ved med at få rettelser. Det
er meget forandring for lidt nyere pakker. Mellemudgivelserne er stedet, hvor
man prøver, hvad den næste LTS bringer.

En LTS-udgivelse har en fast opgraderingsvej, og den er smallere, end mange
regner med. En server flytter kun fra én LTS til den næste og springer ingen
over: fra 20.04 går vejen til 24.04 gennem 22.04. Opgraderingsværktøjet
`do-release-upgrade` tilbyder først springet, når den nye udgivelse har fået sin
første punktudgivelse, så 24.04 blev standardmålet, da 24.04.1 var ude. En
flåde, der er sakket to udgivelser bagud, skal altså igennem to fulde
opgraderinger pr. maskine, hver med sin egen test.

Ubuntu Pro er den anden halvdel af beslutningen. Abonnementet giver de fem
ekstra års sikkerhedsrettelser, Livepatch til at lægge kernerettelser ind uden
genstart, Landscape til at styre maskiner som en flåde og værktøjer til FIPS
140-3 og CIS-hærdning til regulerede opgaver. Det er gratis på op til fem
maskiner, hvilket dækker en lille virksomhed eller et testlaboratorium;
derudover er det et betalt abonnement. Den ærlige sammenligning står mellem
abonnementet og prisen for at opgradere til tiden. Fem år rækker til en server,
der genopbygges fra kode; ti år passer til den maskine, ingen har lyst til at
røre, og dér er det billigere at betale for rettelser end at migrere i hast.

Endelig har Ubuntu sin egen måde at gøre almindelige ting på, og et hold, der
kommer fra en anden distribution, bør afsætte tid til at lære dem. Netværkskort
konfigureres i YAML gennem Netplan. Firewallen styres som regel med `ufw`, en
brugerflade, der leveres slået fra. Sikkerhedsopdateringer installerer sig selv
hver dag gennem `unattended-upgrades`, som er slået til fra start. Hvert af
værktøjerne er behageligt, når man kender det, og overraskende indtil da.

## Sådan ser det ud i praksis

En flåde af Ubuntu Linux-VPS'er, der var vokset frem én maskine ad gangen, viser
tydeligst, hvad et driftsmiljø uden pleje bliver til. Konfigurationerne var
gledet fra hinanden, og ingen havde tænkt igennem, hvordan maskinerne skulle
genskabes, eller hvordan de hang sammen på netværket. Arbejdet
[bragte alle tredive instanser under fælles styring som én flåde](/da/portfolio/managed-30-ubuntu-linux-vps-instances-implementing-disaster-20/):
der kom backup ind med gendannelsesprocedurer, der faktisk var afprøvet, og hver
instans' netværkskonfiguration blev flyttet over på den samme hærdede
basislinje. Vejen tilbage efter et nedbrud var nu testet frem for antaget, og
risikoen for nedetid faldt.

Databaserne stod på samme fundament et andet sted. Ti servere med PostgreSQL 14
og MS SQL Server 2019 på VPS'er med Ubuntu 20.04 LTS blev
[designet, sat i drift og vedligeholdt](/da/portfolio/designed-deployed-and-maintained-10-postgresql-and-ms-13/)
som ét samlet miljø. Backup kørte med `pg_dump` og SQL Server Agent-job, med
opbevaringsregler og lagring uden for huset. Prometheus og Grafana fulgte CPU,
hukommelse, disk-I/O og målinger af forespørgslerne. Både databaserne og selve
Ubuntu blev patchet efter en fast plan, firewallene blev sat op med UFW, og
adgangen blev styret med rollebaseret adgangskontrol. Katastrofegendannelse var
dokumenteret helt ned til gendannelse til et bestemt tidspunkt og failover. De
ti servere kørte med 99,9 % oppetid, forespørgslerne svarede 30 % hurtigere,
automatisering halverede det manuelle vedligehold og frigjorde mere end ti timer
om måneden, og miljøet tog en stigning i brugertrafikken på 40 % uden at blive
langsommere.

Webhosting er det enkleste tilfælde.
[Fyrre websites kørte på Ubuntu Linux-hostingservere](/da/portfolio/administered-40-websites-on-ubuntu-linux-hosting-servers-53/)
bag en blanding af Apache og Nginx, og opgaven var konfigurationen,
ydelsestuningen og det løbende vedligehold, der holder sites stabile under
rigtig trafik. Alle fyrre kørte med høj tilgængelighed og god ydelse.

## Hvor det går galt

**Opdateringen installerer en kernerettelse, og serveren kører videre på den
gamle kerne.** `unattended-upgrades` installerer sikkerhedsopdateringer én gang
i døgnet, men indstillingen `Automatic-Reboot` står som standard til false, så
en ny kerne venter på disken, til nogen genstarter maskinen, og tjenester bruger
de gamle kopier af opdaterede biblioteker, til de selv bliver genstartet. Filen
`/var/run/reboot-required` dukker op, når en genstart venter. Beslut en politik
i stedet for at overlade det til tilfældet: alarmér på filen, planlæg genstarter
i et stille tidsrum, eller brug Livepatch til kernen. En planlagt genstart er to
linjer i `/etc/apt/apt.conf.d/50unattended-upgrades`:

```text
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:30";
```

**En server på en gammel LTS-udgivelse holder op med at få sikkerhedsrettelser,
mens alt på den virker som før.** Den almindelige support for 20.04 sluttede for
eksempel i maj 2025; maskinen starter, svarer og melder grønt præcis som hidtil.
Notér hver servers udgivelse ved siden af dens slutdato for support, og giv den
inden da enten Ubuntu Pro, som bærer 20.04 til maj 2030, eller opgradér den én
LTS ad gangen.

**En ny `ufw`-regel lader trafikken gå præcis som før.** `ufw` gennemgår
reglerne i rækkefølge, og det første match vinder, og en almindelig `ufw allow`
eller `ufw deny` lægges efter de regler, der allerede findes. En ældre og
bredere regel længere oppe bestemmer først. Vis reglerne med deres numre, og sæt
den specifikke regel ind, hvor den hører hjemme:

```sh
sudo ufw status numbered
sudo ufw insert 1 deny from 203.0.113.7
```

**En pakke fra et tredjepartsarkiv bliver hængende på en gammel, sårbar version,
mens resten af systemet er opdateret.** `unattended-upgrades` installerer kun
fra de kilder, der står i indstillingen `Allowed-Origins`, og fra start rummer
listen kun Ubuntus officielle arkiver. Et leverandørarkiv eller en PPA, der
kommer til senere, opdateres i hånden eller slet ikke. Føj kilden bevidst til
listen, eller giv pakken sin egen patchplan.

## Læs mere

- [Ubuntu Server documentation](https://ubuntu.com/server/docs)
  — Canonicals egne vejledninger i at installere, konfigurere og drive Ubuntu på
  servere.
- [Ubuntu release cycle](https://ubuntu.com/about/release-cycle)
  — halvårsrytmen, LTS-kalenderen og slutdatoen for hver udgivelse.
- [Automatic updates](https://documentation.ubuntu.com/server/how-to/software/automatic-updates/)
  — hvordan `unattended-upgrades` vælger kilder, og de genstartsindstillinger,
  der afgør, hvornår rettelserne træder i kraft.
- [Firewall](https://documentation.ubuntu.com/server/how-to/security/firewalls/)
  — `ufw` fra den første aktivering til nummererede regler, med netfilter-laget
  nedenunder.
- [How to upgrade your Ubuntu release](https://documentation.ubuntu.com/server/how-to/software/upgrade-your-release/)
  — `do-release-upgrade`, reglen om én LTS ad gangen og ventetiden på den første
  punktudgivelse.
- [Netplan documentation](https://netplan.readthedocs.io/en/stable/)
  — YAML-netværkskonfigurationen på Ubuntu-servere, herunder `netplan try` med
  automatisk tilbagerulning.

<https://engineer.company/da/glossary/ubuntu/>
