Product SiteDocumentation Site

3.2. 移行の方法

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. サービスの調査と確認

見かけの簡単さに反して、サービスを調査し確認することは最も重要な手順です。真面目な管理者はそれぞれのサーバの主たる役割をよく理解していますが、その役割が変わる可能性もありますし、経験豊富なユーザが「奇妙な」サービスをインストールしていたかもしれません。そのようなサービスが存在するとわかれば、少なくともこのようなサービスを場当たり的に削除するのではなく、どのように扱うか決めることが可能です。
Debian への移行作業を段階的に行うという目的で、サーバを移行する前にユーザに Debian プロジェクトを紹介しておくことが賢明です。ユーザが Debian プロジェクトと関わりを持つことができるようするには、移行前に最も一般的かつ Debian への移行後に使うようなフリーソフトウェアプログラムをユーザのデスクトップにインストールすることが役に立つかもしれません。たとえば LibreOffice や Mozilla スイートはこのようなソフトウェアの良い例です。

3.2.1.1. ネットワークとプロセス

nmap ツール (同名のパッケージに含まれます) を使うことで、あるネットワークに接続されたマシンにログインすることなしにそのマシンがホストするインターネットサービスを素早く特定できます。これを行うには、調査対象と同じネットワークに接続されている別のマシンで以下のコマンドを実行するだけです。
$ 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 第 9.7 節「cronatd を使ったスケジューリングタスク」).
どんな場合でも、サーバのバックアップを行うことは絶対に必要です。すなわち、バックアップをしておけば、移行したことで生じた特定の問題がユーザから報告され、問題が起きた後でも情報を回復することが可能です。

3.2.2. 設定のバックアップ

更新後のサーバに同等の環境を作れるようにするため、それぞれのサービスに対する設定を保存しておくのは賢明です。設定ファイルのバックアップコピーを取ることは最低限必要です。
Unix マシンでは、設定ファイルは通常 /etc/ にありますが、場合によっては /usr/local/ のサブディレクトリにあるかもしれません。これはプログラムをパッケージではなくソースコードを使ってインストールした場合です。また、設定ファイルが /opt/ の下にある場合もあります。
データ管理サービス (データベースなど) では、移行先のソフトウェアで簡単に読み込むことができる一般的なフォーマットでデータを書き出すことを強く推奨します。そのようなフォーマットは通例テキストデータであり、ソフトウェアの文書ではこのフォーマットについて説明されています。ここで一般的なフォーマットとは、たとえばデータベースの SQL ダンプや LDAP サーバの LDIF ファイルのことを指します。
データベースのバックアップ

図 3.2 データベースのバックアップ

それぞれのサーバソフトウェアには違いがありますから、現存するすべての場合について詳しく述べることは不可能です。移行元と移行先のソフトウェアの文書を比較して、書き出し可能 (そして、再読み込み可能) な要素と手作業で書き出したり読み込んだりする必要があるかどうかを確認してください。本書を読めば主な Linux サーバプログラムの設定をしっかりと把握できるようになるでしょう。

3.2.3. 既存の Debian サーバの引き継ぎ

メンテナンスを効率的に引き継ぐために、既に Debian が稼働中のマシンを解析する必要があるかもしれません。
Debian サーバで最初に確認するファイルは /etc/debian_version です。通常 /etc/debian_version にはインストールされた Debian システムのバージョン番号が書かれています (/etc/debian_versionbase-files パッケージに含まれます)。バージョン番号が codename/sid となっていた場合、Debian サーバのシステムが開発版ディストリビューション (テスト版か不安定版のどちらか) のパッケージを使って更新されたことを意味しています。
apt-show-versions プログラム (同名の Debian パッケージに含まれます) はインストールされたパッケージのリストを確認して、利用できるバージョンを識別します。apt-show-versions に比べると体系的ではありませんが、aptitude を同様の目的で使うことも可能です。
/etc/apt/sources.list ファイル (と /etc/apt/sources.list.d/ ディレクトリ) をぱっと見ただけで、インストール済みの Debian パッケージの取得元がわかります。ここにたくさんの未知の取得元があった場合、管理者は 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.).
同様に /usr/local/ ディレクトリの内容を分析するのは興味深いです。このディレクトリは手作業でコンパイルおよびインストールされたプログラムを収めるための場所です。手作業でインストールされたソフトウェアをリストアップすることは有益です。なぜなら、そうすることで Debian にもそのソフトウェアに類似するパッケージがあるにも関わらずそれを使っていない理由に疑問を提起できるからです。

3.2.4. Debian のインストール

現在のサーバに関するすべての必要な情報を集め終わったら、サーバを停止させ、Debian のインストールを始めることが可能です。
適切なバージョンを選ぶには、コンピュータのアーキテクチャを知らなければいけません。まあまあ最近の PC ならば、アーキテクチャは十中八九 amd64 でしょう (古めの PC なら i386)。それ以外の場合、以前使っていたシステムから可能性を狭めることが可能です。
表 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.

表 3.1 オペレーティングシステムとアーキテクチャの照合

オペレーティングシステムアーキテクチャ
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. 選ばれたサービスのインストールと設定

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.
選ばれたサービスのインストール

図 3.3 選ばれたサービスのインストール

意気込んで行動を起こす前に、本書の残りの部分を読むことを強く推奨します。そうすることで、運用予定のサービスを設定する方法について、正確な理解を得ることができるでしょう。