Product SiteDocumentation Site

3.2. Hur man migrerar

In order to guarantee continuity of the services, each computer migration must be planned and executed according to the plan. This principle applies regardless of which operating system is used.

3.2.1. Undersökning och identifiering av tjänster

Även om detta steg framstår som simpelt är det grundläggande. En seriös administratör förstår grundligt de huvudsakliga rollerna varje server har, men sådana roller kan förändras och ibland kan avancerade användare ha installerat ”vilda” tjänster. Att känna till att de existerar kommer åtminstone att låta dig avgöra vad du vill göra med dem, snarare än att bara ta bort dem på måfå.
Av denna anledning är det klokt att informera dina användare om projektet innan migration av servern påbörjas. För att hjälpa till att involvera dem i projektet kan det vara användbart att installera de mest vanliga fria mjukvara på deras arbetsstationer ett tag innan migrationen, vilka de senare kommer komma i kontakt med igen när väl migrationen till Debian är genomförd; LibreOffice och Mozilla programpaketen är bästa exemplen här.

3.2.1.1. Nätverk och Processer

Verktyget nmap (som ingår i paketet med samma namn) kommer snabbt identifiera internettjänster som huseras på en maskin kopplat till det lokala nätverket utan att ens behöva logga in på den. Allt som behövs är att köra följande kommando på en annan dator som är kopplad till samma nätverk:
$ nmap mirwiz
Starting Nmap 7.93 ( https://nmap.org ) at 2024-05-20 00:15 CEST
Nmap scan report for mirwiz (192.168.1.104)
Host is up (0.00062s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
5666/tcp open  nrpe
9999/tcp open  abyss

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
If the server is a Unix machine offering shell accounts to users, it is interesting to determine if processes are executed in the background in the absence of their owner. The command ps auxw displays a list of all processes with their user identity. By checking this information against the output of the who or w commands, which give a list of logged in users, it is possible to identify rogue or undeclared servers or programs running in the background. Looking at crontabs (tables listing automatic actions scheduled by users) will often provide interesting information on functions fulfilled by the server (a complete explanation of cron is available in Avsnitt 9.7, ”Schemalägga uppgifter med cron and atd).
I varje fall är det av yttersta vikt att göra en säkerhetskopia av din server: detta gör det möjligt att återställa information i händelse av att användare rapporterar specifika problem kopplade till migreringen.

3.2.2. Säkerhetskopiera Konfigurationen

Det är klokt att behålla konfigurationen av varje identifierad tjänst i syfte att kunna installera motsvarande på den uppdaterade servern. Absoluta minimum är således att skapa en säkerhetskopia över konfigurationsfilerna.
För en Unixmaskin kan konfigurationsfilerna oftast hittas under /etc/, men kan också befinna sig i en underkatalog till /usr/local/. Så är fallet om ett program installerats från källkoden, snarare än från ett paket. I enskilda fall kan man också finna dem under katalogen /opt/.
För tjänster som hanterar data (exempelvis databaser) är det starkt rekommenderat att exportera datan till ett standardformat som lätt kan importeras av den nya mjukvaran. Sådan format är oftast i form av text och dokumenterad: det kan exempelvis vara en SQL-dump från en databas, eller en LDIF-fil från en LDAP-server.
Säkerhetskopior av databaser

Figur 3.2. Säkerhetskopior av databaser

Varje servermjukvara är olik och det vore en omöjlighet att i detalj beskriva alla existerande fall. Jämför dokumentationen mellan den existerande och den nya mjukvaran för att identifiera vilka delar som kan exporteras (som således går att importera) och vilka som kommer kräva manuell hantering. Att läsa denna bok kommer förklara konfigurationen för de huvudsakliga programmen på en Linuxserver.

3.2.3. Att överta en redan existerande Debian server

För att effektivt ta över dess underhåll, bör man analysera en maskin som redan kör Debian.
Första filen som bör undersökas är /etc/debian_version, vilken vanligtvis innehåller versionsnumret på det installerade Debiansystemet (den är en del i paketet base-files). Om den anger \t kodnamn/sid så betyder det att systemet har uppdaterats med paket som kommer från någon av utvecklingsdistributionerna (antingen testing eller unstable).
Programmet apt-show-versions (från Debianpaketet med samma namn) kontrollerar listan över installerade paket och identifierar de tillgängliga versionerna. aptitude kan också användas för dessa ändamål, dock på ett lite mindre systematiskt sätt.
En titt på filen /etc/apt/sources.list (och katalogen /etc/apt/sources.list.d/) kommer ge en fingervisning varifrån de installerade Debianpaketen kommer ifrån. Ifall för många okända källor uppenbarar sig kan administratören välja att helt installera om datorns system för att kunna säkerställa optimal kompatibilitet med mjukvaran som tillhandahålls av Debian.
The sources.list file is often a good indicator: the majority of administrators keep, at least in comments, the list of APT sources that were previously used. But you should not forget that sources used in the past might have been deleted, and that some random packages grabbed on the Internet might have been manually installed (with the help of the dpkg command). In this case, the machine is misleading in its appearance of being a “standard” Debian system. This is why you should pay attention to any indication that will give away the presence of external packages (appearance of deb files in unusual directories, package version numbers with a special suffix indicating that it originated from outside the Debian project, such as ubuntu or lmde, etc.). Below are two examples, showcasing unusual version suffixes and a third-party package without a source.
$ dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                          Version                        Architecture Description
+++-=============================-==============================-============-===================
[..]
ii  docker-buildx-plugin          0.14.0-1~debian.12~bookworm    amd64        Docker Buildx cli plugin.
ii  docker-ce                     5:26.1.3-1~debian.12~bookworm  amd64        Docker: the open-source application container engine
ii  docker-ce-cli                 5:26.1.3-1~debian.12~bookworm  amd64        Docker CLI: the open-source application container engine
ii  docker-ce-rootless-extras     5:26.1.3-1~debian.12~bookworm  amd64        Rootless support for Docker.
[..]
$ apt-show-versions | grep No
hc-utils:all 0.0.4-1 installed: No available version in archive
På samma sätt är det intressant att analysera innehållet i katalogen /usr/local/ vars syfte är att hussera program kompilerad och installerad manuellt. Att lista mjukvara installerad på detta sätt är lärorikt, eftersom det skapar frågetecken kring varför inte ett motsvarande Debianpaket har använts, om sådant paket existerar.

3.2.4. Installera Debian

När väl all nödvändig information om den nuvarande servern har införskaffats kan vi stänga ner den och initiera installationen av Debian.
För att kunna välja lämplig version behöver vi känna till datorns arkitektur. Om det är en relativt ny PC är de mest sannolikt en amd64 (medan äldre PC tenderar att vara i386). Vid andra tillfällen kan man använda sig av tidigare installerad operativsystem för att lättare kunna ringa in korrekt arkitektur.
Tabell 3.1 är inte avsedd att vara heltäckande, men kan vara till hjälp. Notera dock att den listar arkitekturer för Debian som inte längre har support i nuvarande stabila utgåvan. I varje fall är originaldokumentationen för datorn ifråga den mest tillförlitliga källan till information i frågan.

Tabell 3.1. Matchning mellan operativsystem och arkitektur

OperativsystemArkitektur(er)
DEC Unix (OSF/1)alpha, mipsel
HP Unixia64, hppa
IBM AIXpowerpc
Irixmips
OS Xamd64, powerpc, i386
z/OS, MVSs390x, s390
Solaris, SunOSsparc, i386, m68k
Ultrixmips
VMSalpha
Windows 95/98/MEi386
Windows NT/2000i386, alpha, ia64, mipsel
Windows XP / Windows Server 2003-2008i386, amd64, ia64
Windows RTarmel, armhf, arm64
Windows Vista / Windows 7-8-10-11 / Windows Server 2010-amd64

3.2.5. Installera och konfigurera dom valda tjänsterna

När väl Debian är installerad behöver vi individuellt installera och konfigurera varje tjänst som denna dator skall husera. Den nya konfigurationen behöver ta hänsyn till den tidigare för att säkerställa en smidig övergång. All information som samlats in under de två första stegen kommer vara till användning för att med framgång kunna slutföra denna del.
Installera dom valda tjänsterna

Figur 3.3. Installera dom valda tjänsterna

Innan du hoppar i denna övning med båda fötterna är det starkt rekommenderat att läsa igenom resterande delar av denna bok. När det väl är genomfört kommer du ha en mer utförlig förståelse över hur du kan konfigurera de förväntade tjänsterna.