Product SiteDocumentation Site

3.2. Jak migrować

W celu zapewnienia ciągłości usług, każda migracja na komputerze musi być zaplanowana i realizowana zgodnie z planem. Zasada ta ma zastosowanie bez względu na używany system operacyjny.

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 Libre Office 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.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.
Plik sources.list jest często dobrym wskaźnikiem: większość administratorów zachowuje, przynajmniej w komentarzach, listę źródeł APT, które były wcześniej używane. Ale nie należy zapominać, że źródła wykorzystane w przeszłości mogły zostać usunięte, a niektóre losowe pakiety, podpatrzone w Internecie, mogą być zainstalowane ręcznie (za pomocą polecenia dpkg). W tym przypadku, urządzenie wprowadza w błąd poprzez swój "standardowy" wygląd Debiana. Dlatego należy zwrócić uwagę na wskazania obecności pakietów zewnętrznych (pojawienie się plików deb w nietypowych katalogach, na numery wersji pakietu ze specjalną końcówką wskazującą, że pochodzi on spoza projektu Debian, przykładowo, ubuntu lub lmde, itp)
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 nie jest wyczerpująca, ale może być pomocna. W każdym przypadku, oryginalna dokumentacja dla komputera jest najbardziej wiarygodnym źródłem, w którym można znaleźć te informacje.

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

Gdy został zainstalowany Debian, musimy też zainstalować i skonfigurować, po kolei, wszystkie usługi dla tego komputera. Nowa konfiguracja musi wziąć pod uwagę wcześniejszą konfigurację, aby zapewnić płynne przejście. Wszystkie informacje zebrane w pierwszych dwóch etapach będą przydatne, aby pomyślnie zakończyć tę część konfiguracji.
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.