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.
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.80 ( https://nmap.org ) at 2021-04-29 14:41 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.
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.
Il file sources.list
è spesso un buon indicatore: la maggior parte degli amministratori mantiene, almeno nei commenti, l'elenco delle fonti APT usate precedentemente. Ma non dimentichiamo che le fonti usate in passato potrebbero essere state eliminate e che alcuni pacchetti, presi da internet, potrebbero essere stati installati manualmente (con il comando dpkg
). In questo caso la macchina è fuorviante nella sua apparenza di essere un sistema Debian "standard". Questo è il motivo per cui si dovrebbe fare attenzione ad ogni indizio della presenza di pacchetti esterni (presenza di file deb
in directory non usuali, numeri di versione dei pacchetti con suffissi speciali che rivelano un'origine esterno al progetto Debian, come ubuntu
o lmde
, ecc.).
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 operativo | Architettura |
---|
DEC Unix (OSF/1) | alpha, mipsel |
HP Unix | ia64, hppa |
IBM AIX | powerpc |
Irix | mips |
OS X | amd64, powerpc, i386 |
z/OS, MVS | s390x, s390 |
Solaris, SunOS | sparc, i386, m68k |
Ultrix | mips |
VMS | alpha |
Windows 95/98/ME | i386 |
Windows NT/2000 | i386, alpha, ia64, mipsel |
Windows XP / Windows Server 2008 | i386, amd64, ia64 |
Windows RT | armel, armhf, arm64 |
Windows Vista / Windows 7-8-10 | i386, 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.
Prima di gettarsi a capofitto in questo esercizio, è fortemente consigliato leggere il resto di questo libro. Dopo di che si capirà meglio come configurare i servizi previsti.