[Memo2010][ITPASS]サーバ交換作業(MAIL)
概要
ITPASS サーバでは, 毎年 9-10 月に管理・運営技術と後継者育成を目的として, サーバの再構築を行っている.
ITPASS サーバは本サーバと予備サーバの 2 台体制で運用しており, 以下の手順で再構築を行うこととなる.
なお, 入替え前のサーバと入替え後のサーバのホスト名はそれぞれ old, new である. new と old は適宜読み替える.
- new に OS とサーバソフトウェアのインストール (期間: 1 週間〜 1ヶ月)
- 下記の入れ替え日には ITPASS サーバを停止することとなるため, 停止アナウンスを数度行う (入替え日の 2 週間前から当日 30 分前まで).
- old と new の入替え (期間: 半日〜 1 日)
phase 0 (入替え前)
入れ替えを開始する (サービスを停止する) 30 分前には告知.
phase 1 (入替え開始)
old のサービスを停止する.
- qmail, tcpserver (smtp), inetd (pop3)
- サービス停止作業
qmail, tcserver, openbsd-inetd に関して, 以下のコマンドで, サービスを一時的に停止した. ただし, 再起動すると再びこれらのサービスも起動してしまうため, 作業途中で再起動の必要性が出てしまった場合は注意. 永続的にサービスを停止する作業は phase 3 で行う.
# /etc/init.d/qmail stop # /etc/init.d/tcpserver stop # /etc/init.d/openbsd-inetd stop
- サービス停止作業
phase 2
old から new へ各種データをコピー
old の /usr/local/qpopper/pop.auth を new へコピー
old$ cd /usr/local/qpopper/ old$ sudo cp pop.auth ~/ old$ sudo chown hoge:hoge pop.auth (hoge は適宜, 適当なユーザ名に変更すること) old$ sudo scp pop.auth new: old$ slogin new new$ cd /usr/local/qpopper new$ sudo mv pop.auth pop.auth~ new$ sudo mv ~/pop.auth . new$ sudo chown pop:mail pop.auth new$ ls -l new$ rm pop.auth~ new$ exit
ホスト名と IP アドレスの変更
old と new のホスト名と IP アドレスを入れ替えた.
ホスト名の変更
編集するファイル
- /etc/hostname
- /etc/hosts
- /etc/mailname
- /etc/gate/gate.conf
- /etc/exim4/update-exim4.conf.conf
- /usr/local/bind/etc/namedb/localhost.zone
/usr/local/bind/etc/namedb/localhost.rev
# grep ika (または tako) /etc/*
等で古い名前が残っていないか検索しながら作業すること.
IP アドレスの変更
/etc/hosts と /etc/network/interfaces 内の IP アドレスを入れ替えた.
設定後 old --> 133.30.109.21 new --> 133.30.109.22
ネットワークの再起動
設定の変更後, ネットワークを再起動した.
# /etc/init.d/networking restart
phase 3
old の設定変更を行う.
qmail の設定変更
外から来たメールを受け取らないように, and ログメールを飛ばすのに必要な設定だけにするため, /var/qmail/control 以下の locals, rcpthosts を以下のように変更した. 移行が終わったら起動する.
変更前
localhost ika.scitec.kobe-u.ac.jp itpass.scitec.kobe-u.ac.jp epa.scitec.kobe-u.ac.jp aoe.scitec.kobe-u.ac.jp cps.scitec.kobe-u.ac.jp
変更後
localhost
/var/qmail/control 以下の defaulthost, me の ika という記載を tako に変更した.
new の設定変更する.
- qmail の設定変更
/var/qmail/control 以下の locals, rcpthosts, defaultshost, me が以下のように変更されているかチェックした. されていない場合は以下のように編集する.
localhost ika-itpass.scitec.kobe-u.ac.jp itpass.scitec.kobe-u.ac.jp epa.scitec.kobe-u.ac.jp aoe.scitec.kobe-u.ac.jp cps.scitec.kobe-u.ac.jp
qmail-showctl(8) で設定を確認.
qmail の再起動
/etc/init.d/qmail restart
メーリングリスト毎の bouncer 設定
メーリングリストのエラーメール転送設定が行われているかチェックする. この作業が必要なメーリングリストは,
itpass-ml_at_itpass.scitec.kobe-u.ac.jp
である. ただし, "_at_" はアットマークである. /home/itpass/ml/ml-crtl/bouncer が以下のように変更されていることを確認した. されていない場合は以下のように編集する.
&itpadmin_at_itpass.scitec.kobe-u.ac.jp |/usr/local/ezmlm/bin/ezmlm-weed |/usr/local/ezmlm/bin/ezmlm-return -D '/home/itpass/ml/ml-ctrl'
phase 4
移行の最終チェック
- new
- pop: メールをとってこれるかを確認する.
- popauth を実行すると, /usr/local/qpopper/pop.auth が開けないという種のエラーが出た.
- /usr/local/qpopper/pop.auth は old からコピーしたものだが, それが壊れているかもしれない.
- 壊れたファイルを別名にして, popauth -init を行うことで pop.auth を初期化した.
- pop の利用者に呼び掛けて各自もう一度 pop の設定をしてもらう.
- popauth を実行すると, /usr/local/qpopper/pop.auth が開けないという種のエラーが出た.
- smtp: メールを出せるか, 受け取れるかを確認した.
- mailing list: メールが配送されるかを確認した.
- pop: メールをとってこれるかを確認する.
- old
- pop: 無効になっていることを確認した.
- smtp: submit は有効にするが, 受け取らない設定になっているか
- (<[ITPASS2009]qmailのインストールと設定>)の配送テストと同じ方法でローカル配送テスト1 を行ったが所定の ~/Mailbox にメールは届かなかった.
- ただし cron のログは管理者に届くようになっていることが確認できた.
- (<[ITPASS2009]qmailのインストールと設定>)の配送テストと同じ方法でローカル配送テスト1 を行ったが所定の ~/Mailbox にメールは届かなかった.
- new の smtp や Mailing list の確認は Mail の構築の際と同じような手順で チェックする(qmail-inject で外にメールが届くか, 外からメールを送って届くか, Mailing list にメールを送って届くか).
pop の確認の準備
- new での作業
new の利用者は自分の new のアカウントで, .qmail の設定と Mailbox の作成 popauth コマンドを行ってパスワードを作っておく作業をする
- メールを受け取る new 以外の計算機での作業
メーラーの設定は pop サーバ, smtp サーバはどちらも itpass.scitec.kobe-u.ac.jp にする 認証形式は APOP で, 暗号化は pop も smtp も無しにする 受信のときにパスワードを要求されるので, popauth で作成したパスワードを入力する.
トラブルシューティング
Hiki 内のページを名前指定して URL を参照する際,正しいページに飛ばない問題.
- リダイレクトの際, 参照する名前の文字コード区切りごとに "%" を意味する "25"が挿入されていた.ことが原因である. 解消するには,バーチャルホストのリダイレクトを設定して, "%" を URL の一部として(エスケープしない文字として) 解釈させる必要がある.
- .そのためには, itpass 以下の hikiを運用しているバーチャルホストすべてに対して, hiki に関して 'noescape|NE' オプションを付けた.
/usr/local/apache2/conf/extra/httpd-vhosts.conf について,以下の修正を行った.
# line 40 - 44 RewriteLogLevel 0 RewriteCond %{SERVER_PORT} !^443$ - RewriteRule ^/hiki/(.*)?$ https://itpass.scitec.kobe-u.ac.jp/hiki/$1 [L,R] + RewriteRule ^/hiki/(.*)?$ https://itpass.scitec.kobe-u.ac.jp/hiki/$1 [L,R,NE] RewriteRule ^/hiki/(.*)?$ https://itpass.scitec.kobe-u.ac.jp/hiki-secret/$1 [L,R,NE] # line 115 - 119 RewriteCond %{SERVER_PORT} !^443$ # ---- hiki - RewriteRule ^/hiki/(.*)?$ https://epa.scitec.kobe-u.ac.jp/hiki/$1 [L,R] + RewriteRule ^/hiki/(.*)?$ https://epa.scitec.kobe-u.ac.jp/hiki/$1 [L,R,NE] # ---- gate RewriteRule ^/~gate/(.*)?$ https://itpass.scitec.kobe-u.ac.jp/~gate/$1 [L,R,NE]
[ITPASSサーバ構築ドキュメント へ戻る]
Keyword(s):
References:[[ITPASS2010]2010年度サーバ構築ログ]