# Ubuntu

## Vad det är

Canonical ger ut Ubuntu, en distribution med Linux som systemkärna och de tusentals program som
omger den, byggda, testade och patchade av en och samma utgivare enligt en kalender som meddelas i
förväg. Ubuntu bygger på Debian och använder därför samma `.deb`-paket och samma verktyg, `apt`,
för att installera dem. Ovanpå det kommer en egen utgivningsrytm, egna standardinställningar och
ett företag som säljer support. Samma arkiv försörjer skrivbordsdatorer, avbildningar för molnet
och servrar direkt på hårdvara. Den här artikeln handlar om servern.

Utgåvorna namnges efter år och månad, så 24.04 kom ut i april 2024. En ny utgåva kommer var sjätte
månad, och vartannat år är aprilutgåvan en utgåva med långtidsstöd, märkt LTS. Skillnaden ligger i
hur länge löftet gäller. En mellanutgåva får rättelser i nio månader. En LTS-utgåva får fem års
vanligt säkerhetsunderhåll, som en prenumeration på Ubuntu Pro förlänger till tio år genom
Expanded Security Maintenance, och tillägget Legacy förlänger till femton.

På servrar vägs Ubuntu oftast mot två grannar. Debian är föräldern: samma paketering, men med ett
gemenskapsprojekt i stället för ett företag bakom. Red Hat Enterprise Linux och dess ombyggen,
t.ex. AlmaLinux och Rocky Linux, utgör den andra familjen, med eget paketformat och egna verktyg.
Att välja mellan de tre är mest att välja en kalender, ett supportavtal och de vanor som teamet
redan har.

## Varför det spelar roll

När ett team väl har valt Ubuntu återstår frågan om vilken Ubuntu, och det svaret bestämmer
underhållsbudgeten för flera år framåt.

Servrar hör hemma på LTS-utgåvor. En mellanutgåva går ut nio månader efter att den släppts, så en
server som följer dem måste gå igenom en versionsuppgradering två gånger om året för att hålla sig
patchad. Det är mycket förändring för förmånen att få lite nyare programpaket. Mellanutgåvorna är
platsen där du provar vad nästa LTS kommer att föra med sig.

En LTS-utgåva har en fast uppgraderingsväg, och den är smalare än många tror. En server flyttar
bara från en LTS till den närmast följande, utan att hoppa över någon: från 20.04 går vägen till
24.04 via 22.04. Uppgraderingsverktyget, `do-release-upgrade`, erbjuder hoppet först efter den nya
utgåvans första punktutgåva, så 24.04 blev standardmålet för uppgraderingar när 24.04.1 hade kommit
ut. En park som halkar två utgåvor efter behöver därför två fullständiga uppgraderingar per maskin,
var och en med sina egna tester.

Ubuntu Pro är den andra halvan av beslutet. Prenumerationen ger de fem extra åren med
säkerhetsrättelser, Livepatch för att lägga in rättelser i kärnan utan omstart, Landscape för att
förvalta maskiner som en park, samt verktyg för FIPS 140-3 och för härdning enligt CIS i reglerad
verksamhet. Den är gratis på upp till fem maskiner, vilket räcker för ett litet företag eller ett
labb, och därutöver är den en betald prenumeration. Den ärliga jämförelsen ställer prenumerationen
mot kostnaden för att uppgradera enligt plan. Fem år räcker för en server som byggs om från kod.
Tio år passar den maskin som ingen vill röra, där det är bättre att betala för patchar än att
migrera i all hast.

Till sist har Ubuntu sitt eget sätt att göra vanliga saker, och ett team som kommer från en annan
distribution bör avsätta tid för att lära sig dem. Nätverksgränssnitt konfigureras i YAML via
Netplan. Brandväggen sköts oftast med `ufw`, ett gränssnitt som levereras avstängt.
Säkerhetsuppdateringar installerar sig själva varje dag via `unattended-upgrades`, som är påslaget
som standard. Allt det är bekvämt när du känner till det och överraskande innan dess.

## Så ser det ut i praktiken

En park av VPS-instanser med Ubuntu Linux, som hade vuxit fram en maskin i taget, är den tydligaste
bilden av vad en oförvaltad miljö blir. Konfigurationerna hade glidit isär, och ingen hade utformat
hur maskinerna skulle återställas eller hur de hängde ihop i nätverket. Arbetet
[förde in alla trettio instanserna under förvaltning som en park](/sv/portfolio/managed-30-ubuntu-linux-vps-instances-implementing-disaster-20/):
säkerhetskopior kom på plats med återställningsrutiner som faktiskt testades, och
nätverkskonfigurationen på varje instans flyttades till samma härdade baskonfiguration.
Återställningsvägarna var nu testade i stället för antagna, och risken för driftstopp minskade.

Databaser kördes på samma grund på ett annat ställe. Där bar Ubuntu 20.04 LTS tio VPS-instanser för
PostgreSQL 14 och MS SQL Server 2019, en databasmiljö som
[utformades, driftsattes och underhölls](/sv/portfolio/designed-deployed-and-maintained-10-postgresql-and-ms-13/)
som en sammanhållen helhet. Säkerhetskopiorna gick via `pg_dump` och jobb i SQL Server Agent, med
regler för lagringstid och kopior på annan plats. Prometheus och Grafana följde CPU, minne, disk-I/O
och mått för databasfrågor. Både databaserna och operativsystemet Ubuntu patchades enligt ett
regelbundet schema, brandväggarna konfigurerades med UFW och åtkomsten styrdes med rollbaserad
åtkomstkontroll. Katastrofåterställningen dokumenterades ända ner till återställning till en given
tidpunkt och failover. De tio servrarna hade 99,9 % upptid, svarstiderna för databasfrågor
förbättrades med 30 %, automatiseringen minskade det manuella underhållet med 50 % och frigjorde
över tio timmar i månaden, och miljön klarade 40 % mer användartrafik utan att försämras.

Webbhotell är det enklaste fallet.
[Fyrtio webbplatser kördes på hostingservrar med Ubuntu Linux](/sv/portfolio/administered-40-websites-on-ubuntu-linux-hosting-servers-53/)
bakom en blandning av Apache och nginx, och jobbet var konfigurationen, prestandaoptimeringen och
det underhåll som håller webbplatser tillförlitliga under verklig trafik. Alla fyrtio drevs med hög
tillgänglighet och god prestanda.

## Var det går fel

**Uppdateraren installerar en rättelse av kärnan, och servern fortsätter köra den gamla.**
`unattended-upgrades` installerar säkerhetsuppdateringar en gång om dygnet, men alternativet
`Automatic-Reboot` är som standard false. En ny kärna väntar därför på disken tills någon startar
om maskinen, och tjänsterna fortsätter använda de gamla kopiorna av uppdaterade bibliotek tills
även de startas om. Filen `/var/run/reboot-required` dyker upp när en omstart väntar. Bestäm en
policy i stället för att lämna det åt slumpen: sätt upp ett larm på den filen, schemalägg omstarter
till en lugn timme eller använd Livepatch för kärnan. En schemalagd omstart är två rader 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 gammal LTS-utgåva slutar få säkerhetsrättelser medan allt på den fortsätter att
fungera.** Standardstödet för 20.04 tog t.ex. slut i maj 2025, och maskinen startar, svarar och
rapporterar grönt precis som förut. Skriv upp utgåvan för varje server bredvid slutdatumet för dess
stöd. Före det datumet kopplar du antingen på Ubuntu Pro, som bär 20.04 till maj 2030, eller
uppgraderar en LTS i taget.

**En ny regel i `ufw` läggs in, och trafiken flödar precis som förut.** `ufw` utvärderar reglerna i
ordning och den första som matchar vinner, och en vanlig `ufw allow` eller `ufw deny` hamnar efter
de regler som redan finns. En äldre, bredare regel ovanför avgör först. Lista reglerna med deras
positioner och lägg den specifika regeln där den hör hemma:

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

**Ett paket från ett tredjepartsförråd blir kvar på en gammal, sårbar version medan resten av
systemet är aktuellt.** `unattended-upgrades` installerar bara från de ursprung som står i
inställningen `Allowed-Origins`, och från början innehåller den listan bara de officiella
paketförråden för Ubuntu. Ett förråd från en leverantör eller ett PPA som läggs till senare
uppdateras för hand eller inte alls. Lägg till dess ursprung i listan med avsikt, eller ge paketet
ett eget schema för patchning.

## Läs mer

- [Ubuntu Server documentation](https://ubuntu.com/server/docs)
  — guiderna från Canonical för att installera, konfigurera och köra Ubuntu på servrar.
- [Ubuntu release cycle](https://ubuntu.com/about/release-cycle)
  — rytmen på sex månader, LTS-kalendern och slutdatumet för varje utgåva.
- [Automatic updates](https://documentation.ubuntu.com/server/how-to/software/automatic-updates/)
  — hur `unattended-upgrades` väljer ursprung, och de omstartsalternativ som avgör när rättelserna
  får verkan.
- [Firewall](https://documentation.ubuntu.com/server/how-to/security/firewalls/)
  — `ufw` från första aktiveringen till numrerade regler, med netfilter-lagret därunder.
- [How to upgrade your Ubuntu release](https://documentation.ubuntu.com/server/how-to/software/upgrade-your-release/)
  — `do-release-upgrade`, regeln om en LTS i taget och väntan på den första punktutgåvan.
- [Netplan documentation](https://netplan.readthedocs.io/en/stable/)
  — nätverkskonfigurationen i YAML som Ubuntu-servrar använder, bl.a. `netplan try` med dess
  automatiska återställning.

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