Product SiteDocumentation Site

3.2. Jak migrować

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. Ankieta i identyfikacja usług

Ten krok jest niezbędny i jest tak prosty, jak tylko się wydaje. Dobry administrator zna główne role każdego serwera, ale takie role mogą się zmieniać. Czasem, nawet doświadczeni użytkownicy mogą mieć zainstalowane usługi na "dziko". Wiedza o tym, że takie usługi istnieją, pozwoli administratorowi zadecydować o ich dalszym losie i zapobiegnie przypadkowemu usuwaniu usług.
W tym celu dobrze jest poinformować użytkowników o projekcie przed migracją serwera. Zaangażowanie ich w projekt przed migracją może być przydatne w instalacji najbardziej znanych, wolnych programów na ich komputerach. Po migracji do Debiana zetkną się z tymi programami ponownie: pakiet LibreOffice i pakiet Mozilla są tego najlepszymi przykładami.

3.2.1.1. Sieć komputerowa i procesy

Narzędzie nmap (w pakiecie o tej samej nazwie) szybko zidentyfikuje usługi internetowe uruchomione na maszynie podłączonej do sieci komputerowej, nawet bez potrzeby logowania sie na tej maszynie. Po prostu, wywołaj następujące polecenie na innej maszynie, podłączonej do tej samej sieci:
$ 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
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 Sekcja 9.7, „Scheduling Tasks with cron and atd).
W każdym przypadku, konieczne jest tworzenie kopii zapasowych serwerów, co pozwala na odzyskanie danych po fakcie, gdy użytkownicy będą raportować specyficzne problemy, związane z migracją.

3.2.2. Tworzenie kopii zapasowej konfiguracji

Dobrze jest, aby utrzymać konfigurację każdej zidentyfikowanej usługi, aby móc potem zainstalować jej odpowiednik na zaktualizowanym serwerze. Absolutne minimum to stworzenie kopii zapasowej plików konfiguracyjnych.
Pliki konfiguracyjne dla maszyn uniksowych znajdują się zwykle w katalogu /etc/, ale mogą też znajdować się w podkatalogu /usr/local/. Jest to przypadek, gdy program jest zainstalowany raczej ze źródeł, a nie z pakietu. W niektórych przypadkach, pliki konfiguracyjne można również znaleźć w katalogu /opt/.
Dla usług zarządzających danymi, które, przykładowo, zarządzają bazami danych usilnie zaleca się, aby wyeksportować dane do standardowego formatu, który będzie można łatwo zaimportować za pomocą nowego oprogramowania. Taki format zazwyczaj jest w trybie tekstowym i jest udokumentowany; może to być, przykładowo, zrzut SQL dla bazy danych lub plik LDIF dla serwera LDAP.
Kopie zapasowe bazy danych

Rysunek 3.2. Kopie zapasowe bazy danych

Każdy oprogramowanie serwera jest inne. Nie jest możliwe szczegółowe opisanie wszystkich przypadków. Proszę porównać dokumentację dla istniejących i nowych oprogramowań, które mogą wyeksportować (i ponownie zaimportować) części oprogramowań i dokumentację tych oprogramowań, które wymagają ręcznej obsługi. W dalszej części tej książki zostanie wyjaśniona konfiguracja głównych programów serwera Linuksa.

3.2.3. Przejmowanie (na własność) istniejącego serwera Debiana

Aby efektywnie przejąć kontrolę nad serwerem Debiana, dobrze jest wcześniej przeanalizować maszynę już uruchomioną z tym systemem.
Pierwszym plikiem do sprawdzenia jest /etc/debian_version. Zawiera on zwykle numer wersji zainstalowanego systemu Debian (jest to cześć pakietu base-files). Jeśli plik zawiera wpis, odnoszący się do nazwy kodowej/sid, to wnioskujemy, że system został zaktualizowany za pomocą pakietów, pochodzących z dystrybucji rozwojowej (testowej lub niestabilnej).
Program (polecenie konsolowe) apt-show-versions (z pakietu Debiana o tej samej nazwie) sprawdza listę zainstalowanych pakietów oraz identyfikuje ich dostępne wersje (Po prostu, wpisujemy nazwę tego programu za znakiem zachęty w konsoli lub w terminalu). Do tych samych zadań można użyć programu (polecenia) aptitude. Jego działanie jest jednak mniej systematyczne.
Rzut oka na plik /etc/apt/sources.list (i katalog /etc/apt/sources.list.d/) z dużym prawdopodobieństwem pokaże skąd pochodzą zainstalowane pakiety Debiana. Jeśli pojawi się wiele nieznanych źródeł, to administrator może wybrać całkowitą reinstalację systemu komputerowego, aby zapewnić optymalna kompatybilność z oprogramowaniem dostarczanym przez Debiana.
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.).
Podobnie, warto przeanalizować zawartość pliku w katalogu /usr/local/, w którym są ręcznie zainstalowane i skompilowane programy. Wyliczenie oprogramowania zainstalowanego w ten sposób jest pouczające, ponieważ rodzi to pytania dotyczące powodów nie używania odpowiedniego pakietu Debiana, jeżeli takie pakiety istnieją.

3.2.4. Instalowanie Debiana

Gdy wszystkie wymagane informacje na bieżącym serwerze są już znane, możemy go zamknąć i rozpocząć na nim instalację Debiana.
Aby wybrać odpowiednią wersję, musimy znać architekturę komputera. Jeśli jest to w miarę nowy PC, to jest bardzo prawdopodobne, iż będzie to amd64 (starsze komputery miały zwykle architekturę i386). W innych przypadkach, możemy zawęzić możliwości zgodnie z poprzednio używanym systemem.
Tabela 3.1 is not intended to be exhaustive, but may be helpful. Note that it lists Debian architectures which are no longer supported in the current stable release. In any case, the original documentation for the computer is the most reliable source to find this information.

Tabela 3.1. Dopasowanie systemu operacyjnego i architektury

System operacyjnyArchitektur(a/y)
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 2008i386, amd64, ia64
Windows RTarmel, armhf, arm64
Windows Vista / Windows 7-8-10i386, amd64

3.2.5. Instalowanie i konfigurowanie wybranych usług

Once Debian is installed, we need to individually install and configure each of the services that this computer must host. The new configuration must take into consideration the prior one in order to ensure a smooth transition. All the information collected in the first two steps will be useful to successfully complete this part.
Instalowanie wybranych usług

Rysunek 3.3. Instalowanie wybranych usług

Przed intensywnym rozpoczęciem tego ćwiczenia usilnie zaleca się przeczytanie książki do końca. Potem potrzebne będzie dokładniejsze zrozumienie sposobu konfigurowania oczekiwanych usług.