Product SiteDocumentation Site

3.2. Come migrare

Al fine di garantire la continuità dei servizi, ogni migrazione di computer deve essere scrupolosamente pianificata ed eseguita. Questo principio si applica indipendentemente dal sistema operativo in uso.

3.2.1. Rilevamento e identificazione dei servizi

Per quanto sembri semplice, questo passo è essenziale. Un amministratore scrupoloso conosce veramente i ruoli principali di ogni server, ma tali ruoli possono cambiare e talvolta utenti esperti possono aver installato servizi non "autorizzati". Sapere che esistono permette almeno di decidere cosa farne, piuttosto che eliminarli inconsapevolmente.
Per questo scopo, è saggio informare di questo progetto i propri utenti prima di migrare il server. Per coinvolgerli nel progetto, può essere utile installare i programmi liberi più comuni sui loro computer prima della migrazione, quelli che saranno incontrati di nuovo dopo la migrazione a Debian; LibreOffice e la suite Mozilla ne sono i migliori esempi.

3.2.1.1. Rete e processi

Lo strumento nmap (nel pacchetto con lo stesso nome) identificherà velocemente i servizi Internet ospitati da una macchina connessa alla rete senza nemmeno aver bisogno di accedervi. Basta semplicemente eseguire il seguente comando su un'altra macchina connessa alla stessa rete:
$ 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
Se il server è una macchina Unix che offre una shell agli utenti, è importante determinare se, in assenza del loro proprietario, ci sono processi eseguiti in background. Il comando ps auxw mostra un elenco di tutti i processi e l'utente a cui appartiene. Confrontando queste informazioni con l'output del comando who o w, che mostra un elenco degli utenti collegati, è possibile identificare server o programmi in esecuzione in background non richiesti. Analizzare le crontab (tabelle che elencano le azioni automatiche programmate dagli utenti) fornirà spesso informazioni più dettagliate sulle funzioni svolte dal server (una spiegazione completa di cron è disponibile in Sezione 9.7, «Pianificare attività con cron e atd»).
In ogni caso è essenziale fare il backup dei propri server: questo permette il recupero di informazioni a posteriori, quando gli utenti segnaleranno problemi specifici dovuti alla migrazione.

3.2.2. Fare il backup della configurazione

È saggio conservare la configurazione di ogni servizio identificato al fine di essere in grado di installare quello equivalente sul server aggiornato. Il minimo indispensabile è fare una copia di backup dei file di configurazione.
Per le macchine Unix, i file di configurazione si trovano solitamente in /etc/, ma possono trovarsi in una sotto-directory di /usr/local/. Questo è il caso quando un programma è stato installato dai sorgenti, piuttosto che da un pacchetto. In alcuni casi si possono trovare sotto /opt/.
Per i servizi che gestiscono dati (come i database), è fortemente consigliato di esportare i dati in un formato standard che sarà facilmente importato dal nuovo software. Un tale formato è solitamente in modalità testo e documentato; può essere, per esempio, un dump SQL per un database o un file LDIF per un server LDAP.
Backup di database

Figura 3.2. Backup di database

Il software di ogni server è differente ed è impossibile descrivere dettagliatamente tutti i casi esistenti. Confrontare la documentazione del software attuale e di quello nuovo per identificare le porzioni esportabili (perciò re-importabili) e quelle che richiedono un intervento manuale. La lettura di questo libro chiarirà la configurazione dei principali programmi per server Linux.

3.2.3. Prendere il controllo di un server Debian esistente

Si può analizzare una macchina che già esegue Debian per prendere efficacemente il controllo della sua manutenzione.
Il primo file da controllare è /etc/debian_version, che solitamente contiene il numero di versione per il sistema Debian installato (fa parte del pacchetto base-files). Se indica codename/sid, significa che il sistema è stato aggiornato con pacchetti provenienti da una delle distribuzioni di sviluppo (testing oppure unstable).
Il comando apt-show-versions (dal pacchetto Debian con lo stesso nome) controlla l'elenco dei pacchetti installati e identifica le versioni disponibili. Anche aptitude può essere usato per questi compiti, anche se in maniera meno sistematica.
Un'occhiata al file /etc/apt/sources.list (ed alla directory /etc/apt/sources.list.d/) mostrerà da dove probabilmente provengono i pacchetti Debian installati. Se appaiono molte sorgenti sconosciute, l'amministratore può scegliere di reinstallare completamente il sistema del computer per assicurare una compatibilità ottimale con il software fornito da 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
Allo stesso modo, è interessante analizzare il contenuto della directory /usr/local/, che ha lo scopo di contenere programmi compilati e installati manualmente. Elencare il software installato in questa maniera è istruttivo dal momento che solleva interrogativi sulle ragioni per cui non è stato usato il pacchetto Debian corrispondente, se un tale pacchetto esiste.

3.2.4. Installazione di Debian

Una volta che tutte le informazioni sul server attuale sono conosciute, possiamo spegnerlo e installarci Debian.
Per scegliere la versione appropriata, si deve conoscere l'architettura del computer. Se è un PC piuttosto recente, molto probabilmente è amd64 (i PC più vecchi erano solitamente i386). In altri casi si possono ridurre le scelte possibili in base al sistema usato precedentemente.
Tabella 3.1 non ha la pretesa di essere completa, ma può essere utile. Si noti che elenca le architetture Debian che non sono più supportate nell'attuale versione stabile. In ogni caso, la documentazione originale del computer è la fonte più affidabile per trovare questa informazione.

Tabella 3.1. Sistema operativo e architettura corrispondente

Sistema operativoArchitettura
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. Installazione e configurazione dei servizi scelti

Una volta che Debian è installata, è necessario installare e configurare, individualmente, ognuno dei servizi che questo computer deve ospitare. La nuova configurazione deve tenere in considerazione quella precedente per assicurare una transizione indolore. Tutte le informazioni raccolte nei primi due passi saranno utili per completare con successo questa parte.
Installazione dei servizi scelti

Figura 3.3. Installazione dei servizi scelti

Prima di gettarsi a capofitto, è fortemente consigliato leggere il resto di questo libro. Dopo di che si capirà meglio come configurare i servizi previsti.