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 whatever 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.
For this purpose, it is wise to inform your users of the project before migrating the server. To involve them in the project, it may be useful to install the most common free software programs on their desktops prior to migration, which they will come across again after the migration to Debian; LibreOffice and the Mozilla suite are the best examples here.

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.40 ( https://nmap.org ) at 2017-06-06 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
Jeśli serwer maszyny uniksowej oferuje konta powłoki użytkownikom, to interesujące jest określenie tego, czy procesy wykonywane są w tle pod nieobecność ich właściciela. Polecenie ps auxw wyświetla listę wszystkich procesów, razem z tożsamością ich użytkownika. Poprzez sprawdzenie informacji, uzyskanych za pomocą polecenia who, które daje listę zalogowanych użytkowników, możliwe jest zidentyfikowanie nieuczciwych lub niezadeklarowanych serwerów lub programów uruchomionych w tle. Rzut okiem na crontabs (tabele nasłuchujące automatycznych działań zaplanowanych przez użytkowników) często dostarczy interesujących informacji na temat funkcji spełnianych przez serwer (pełne wyjaśnienie polecenia cron jest dostępne w 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 dla 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.