Product SiteDocumentation Site

3.2. 移行の方法

サービスの継続性を保証するために、それぞれのコンピュータの移行計画を立て、計画に従って移行作業を行わなければいけません。この原則はオペレーティングシステムの種類に依存しません。

3.2.1. サービスの調査と確認

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

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

nmap ツール (同名のパッケージに含まれます) を使うことで、あるネットワークに接続されたマシンにログインすることなしにそのマシンがホストするインターネットサービスを素早く特定できます。これを行うには、調査対象と同じネットワークに接続されている別のマシンで以下のコマンドを実行するだけです。
$ nmap mirwiz
Starting Nmap 7.40 ( https://nmap.org ) at 2017-06-06 21:41 JST
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
サーバがユーザにシェルアカウントを提供する Unix マシンの場合、所有者不在のプロセスがバックグラウンドで実行されているかどうかを見つけ出すことは興味深いものです。ps auxw コマンドはユーザ名と一緒にすべてのプロセスのリストを表示します。この情報と、ログイン中のユーザのリストを表示する who コマンドの出力を比較することで、バックグラウンドで実行されている不正で無申告のサーバまたはプログラムを特定することが可能です。crontabs (ユーザが定期的に予定している自動実行の一覧表) にはしばしばサーバの果たす役割に関する興味深い情報が含まれています (cron の完全な説明は第 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 が提供するソフトウェアとの最適な互換性を確保するために、コンピュータシステムを完全に再インストールするかもしれません。
多くの場合、この sources.list ファイルが良い手掛かりとなります。なぜなら大多数の管理者は、少なくともコメントの中で、過去に使っていた APT ソースのリストを残しているからです。しかし、過去に使っていたソースは削除されているかもしれないこと、インターネットから取得されたでたらめなパッケージが手作業で (dpkg コマンドを使って) インストールされているかもしれないこと、を忘れるべきではありません。この場合、マシンは「標準的な」Debian の外観に偽装されている恐れがあります。そのため、外部パッケージの存在を示す兆候を見逃さないようするべきです (通常では考えにくいディレクトリに deb ファイルがあったり、パッケージのバージョン番号のサフィックスに ubuntulmde などの特別なものが使われていたら、それは Debian プロジェクト以外で作られたことを意味しています)。
同様に /usr/local/ ディレクトリの内容を分析するのは興味深いです。このディレクトリは手作業でコンパイルおよびインストールされたプログラムを収めるための場所です。手作業でインストールされたソフトウェアをリストアップすることは有益です。なぜなら、そうすることで Debian にもそのソフトウェアに類似するパッケージがあるにも関わらずそれを使っていない理由に疑問を提起できるからです。

3.2.4. Debian のインストール

現在のサーバに関するすべての必要な情報を集め終わったら、サーバを停止させ、Debian のインストールを始めることが可能です。
適切なバージョンを選ぶには、コンピュータのアーキテクチャを知らなければいけません。まあまあ最近の PC ならば、アーキテクチャは十中八九 amd64 でしょう (古めの PC なら i386)。それ以外の場合、以前使っていたシステムから可能性を狭めることが可能です。
表 3.1 はすべてを網羅することを意図したものではありませんが、参考になります。いかなる場合でも、コンピュータの原資料はこの種の情報を探すには最も信頼できるソースです。

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

Debian のインストールが完了したら、コンピュータがホストするすべてのサービスについて 1 つずつインストールと設定を行わなければいけません。移行を円滑に進めるためにも、新しい設定は古い設定を考慮して行われなければいけません。最初の 2 ステップで集めたすべての情報が、この作業を成功のうちに完了させるのに役立つでしょう。
選ばれたサービスのインストール

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

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