DNS, メール, popper が動いているマシン(以下、「旧マシン」と呼ぶ)を、 新しいマシン(以下、「新マシン」と呼ぶ)に移行する手順について。
OSのバージョンアップ、パッチを、現に DNS, メール, popper が動いてい るマシンで行うのは面倒です。いっそ移行する方が良いこともあります。
新マシンの準備です。
ポイント: マシン名は、「旧マシン」とは違うものにする(その方が作 業しやすい)。IPアドレスも、「旧マシン」とは違うものを仮に付けてお (最終的には、IPアドレスはつけ変える)。旧マシンと新マシンでは、同じ OSが動いていることが望ましい(作業しやすい)。
ポイント: 作業の間、「旧マシン」の設定は変えないようにする。 「旧マシン」が動かなくなると、いざという時に困るので。
【関連する外部ページ】
ポイント: 設定ファイルは、「旧マシン」から持ってくる が、次のように書き換えておく。また、bind の起動オプションが変更され ているかも知れないので、確認しておく。
参考 Web ページ
参考 Web ページ
ポイント: sendmail や DNS を変えたいという欲求 は、我慢する。移行のときは最小限の作業に絞った法が良い。トラブルの元になります(バージョンアップしたければ、後日ゆっ くり行う)。
移行作業でトラブルが起きたら、「新マシンへの移行を取りやめて、旧マシンの 稼働に戻す」という決断を持つ勇気も必要です。 そのためには、旧マシンの 設定を変えたりなどは、極力避けます(実際、設定の変更は必要ないはずです)。
「旧マシン」はシャットダウンし、シャットダウン後に、必 要なファイル(pop.auth, /var/spool/mail )を「新DNSメールマシン」に正しく移す(オーナー、タイムスタン プもそのままで移す。同時「新DNSメールマシン」のIPアドレスだけを付け 変える。その後、動作チェックし、うまく行かないようであれば、元に戻す。
popper の移転では、pop.auth (pop パスワードの入ったファイル)をそのまま 使い続けたいと思うのは当然ですが、 旧マシンと新マシンで、popper の make 時のオプション(GNU gdbm を使う/使 わない) などを一致させておく必要がある。オプションが違うと、 pop.auth が使えません。
同じIPアドレスのマシンが同時に稼働しないように十分に注意すること。ま た、この作業は20分以内に終えること。そのために、事前に、数回の練習をし ておくことが望ましい。
/etc/rc2.d/S88sendmail を作る。普通は、「旧マシン」からコピーしてくる だけでよい
sendmail に関する設定ファイル(例えば下記)は、もし、事前に設定とテス トが済んでいれば、バックアップを実施しておく(下記の手順では、上書きさ れてしまう可能性があるため)。
sendmail, popper 関係のファイルを、「旧マシン」から「新マシン」に移行 します。
[旧マシンでの作業] cd /var/spool/mail tar -cvpf /var/spool/all.tar ./* chown root /var/spool/all.tar chmod 700 /var/spool/all.tar # sftp で dnsmail へ /var/spool/all.tar と /etc/pop.auth を転送 sftp 「新マシン」 passward **** cd /etc/ lcd /etc/ put pop.auth cd /var/spool/ lcd /var/spool/ put all.tar 旧マシンのシャットダウン ps -e | grep sendmail で、確かに sendmail も止まっているかを念のために確認
[新マシンでの作業] chown pop /etc/pop.auth chmod 600 /etc/pop.auth chown root /var/spool/all.tar chmod 700 /var/spool/all.tar cd /var/spool/mail; tar -xvpf /var/spool/all.tarこの時点で、新マシンにおいて次の確認を行なう
m4 .../m4/cf.m4 sendmail.mc > sendmail.cf
DNS に関する設定ファイル(例えば下記)は、事前に設定(あるいは移行)とテストが済んでい るものとして、説明を続けます。
「新マシン」のIPアドレスだけを変える。マシン名は変えない。
次のように変更する。
変更前
「旧マシン名」 IN A 「IPアドレス」 「新マシン名」 IN A 「仮のIPアドレス」
変更後
「新マシン名」 IN A 「IPアドレス」
同時に、次の1行を追加
「旧マシン名」 IN CNAME 「新マシン名」
db.zone の中に、「旧マシン名」が残っていたら、1つずつチェックしながら、 「新マシン名」で置き換える。
設定例は次の通り
2c2 < 2004031712 ; Serial --- > 2004032301 ; Serial 51c51 < oldmachine IN A 133.5.18.160 --- > newmachine IN A 133.5.18.160 55c55 < newmachine IN A 133.5.18.163 --- > ;newmachine IN A 133.5.18.163 85c85 < ; oldmachine IN CNAME newmachine --- > oldmachine IN CNAME newmachine
次のように変更する。
変更前
「アドレス」 IN PTR 「旧マシン名」 「仮のアドレス」 IN PTR 「新マシン名」
変更後
「アドレス」 IN PTR 「新マシン名」
dbrev.rev の中に、「旧マシン名」が残っていたら、1つずつチェックしながら、 「新マシン名」で置き換える。
2c2 < 2004031702 ; Serial --- > 2004032301 ; Serial 18c18 < 160 IN PTR oldmachine.domainname.jp. --- > 160 IN PTR newmachine.domainname.jp. 22c22 < 163 IN PTR newmachine.domainname.jp. --- > ;163 IN PTR newmachine.domainname.jp.
/etc/hosts のIPアドレスを書き換えます。
以上の書き換えが終わったら、書き換えがうまく言ったか nslookup でテストしてみる。
kill -HUP `cat /var/run/named.pid` /etc/rc2.d/S88sendmail stop /etc/rc2.d/S88sendmail start nslookup 「新マシン名」 nslookup 「IPアドレス」
移行作業のために「仮のマシン名」を NIS サーバに登録していたのなら、削除します。
NIS サーバの hosts ファイル(/var/yp/nis.inputs/hosts)を書き換えて、make を実行。その後、動作チェック