[Memo2008][EPA]EPA サーバ交代時の作業ログ(080825)
スケジュール
August 2008 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 <- メーリングリストのフォワード設定 (中本), (08/04-08 納多昼間不在) (08/07-09 森川不在) 10 11 12 13 14 15 16 <- (08/13-15 大学休業) (08/10-11 森川不在) 17 18 19 20 21 22 23 <- 移行の準備作業 (納多, 中本, 村上, 森川, 佐々木) (08/17-20 森川, 佐々木, 納多不在) (08/19 停電) 24 25 26 27 28 29 30 <- (08/25) EPA サーバを ika から tako へ移行 (納多, 中本, 村上, 森川, 佐々木) 31 September 2008 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 <- tako の動作チェック用週間 (09/01-02 神戸大院試) (09/03-07 流体力学会) 7 8 9 10 11 12 13 <- 新 ika の構築について相談 (09/08-13 学芸員実習(今村)) 14 15 16 17 18 19 20 <- (09/17-20 GFD セミナー) 21 22 23 24 25 26 27 <- 新 ika の構築開始
- 新 ika の構築終了めどは 10 月末.
EPAサーバ移行 (ika ⇒ tako)
移行計画の概要
- 事前アナウンスを数度行う(2週間前から当日30分前まで).
- ikaのサービスをssh以外落す.
- ikaのデータをtakoにrsync.
- gradisのDNSの権限委譲先をtakoに変更.
- takoのサービスを上げる.
- 復旧告知
作戦覚書
- 移行中の CPS office 部屋のネットワーク接続 (DNS 設定) を検討する (高橋)
- epa.scitec.kobe-u.ac.jpに対応したIPアドレスをikaからtakoに変更.
- HTTPS用の証明書はepaで作ってあるので問題なし.
- sshのホスト鍵は, 本当のなまえ(ika.epa.scitec.kobe-u.ac.jp)で
~/.ssh/known_hostsに保存されているので,
ikaのホスト鍵をtakoにコピーした上で, 移行後に
epa.scitec.kobe-u.ac.jpでログインしようとしても, うまくいかない.
- 名前も張り替える作戦なら問題は起きないが, 今回はローカルに保存したホスト鍵を各人で消してもらう作戦で行く.
- 無線 LAN などの機器は DNS サーバとして ika と tako の両方を設定している. tako に移行した際には ika はセカンダリ DNS サーバとするためとりあえず 問題は起こらないと考えられるが, その後 ika を再構築中に設定中のゾーン ファイルを読み込んで何らかの問題が生じるかもしれない.
EPAサーバ移行スケジュール
EPAサーバのikaからtakoへの移行を時系列順にまとめる.
現段階では, 08/25 (月) を移行日と想定して作戦を立てる.
停止時間は3時間をメドにする. (ただし, 告知する停止時間は 13:00 〜 18:00 と多少長めに)
08/03-09 の週
- 移行日と停止時間の予定のアナウンス (森川)
- 移行日や停止時間がまずくないか, お伺い.
- kobe-s3all@, itpass@, cps@, cps-wheel@ 宛
1週間前まで (- 08/18)
- 移行の周知と確定した予定日/時間の周知 (森川)
1日前 or 前の週の最後の平日 (08/22)
- サーバ構築用のアカウントの削除 (ホームディレクトリも消すこと)
- ika の mondo1-3 (納多)
- tako の chikuwa1-5 (中本)
- 移行再告知 (森川)
- ika, gradis, tako の DNS キャッシュの TTL を変更. (納多, 村上)
- TTL は 5 分 (300 秒) くらいにしておく.
- 具体的な手順は [Memo2008][EPA]tako作業メモ(納多)(080822)#DNS の TTL の設定変更 を参照.
- /home 以下のディレクトリを ika から tako へ rsync する. (中本, 佐々木)
- 当日のコピーの時間を短縮するため.
- 具体的な手順は [Memo2008][EPA]tako作業メモ(中本)(080822) を参照.
当日
- 12:00 関係者集合
- 移行開始 30 分前: 移行再告知 (森川)
当日: 13:00 移行開始
phase 0,1,2,3,4の順に行う. phase 0,1,2,3,4内のそれぞれの項目は順不同.
phase 0 13:00 - 13:10
- ika, tako
- セキュリティアップデート (森川)
phase 1 13:10 - 13:40
サービス停止前の下準備
ika と tako 自身の DNS 設定の設定 /etc/resolv.conf を以下のように 書き換える. なお, 133.30.104.1 は scitec の DNS サーバ, 133.30.8.2 は神戸大での DNS サーバである.
search epa.scitec.kobe-u.ac.jp nameserver 133.30.104.1 nameserver 133.30.8.2 nameserver 133.30.109.22 nameserver 133.30.109.21
ikaのサービスを停止する.
- http (https), dns, tcpserver (smtp), inetd (pop3) (中本)
- サービス停止作業
apache2, bind, qmail, tcpserver, openbsd-inetd に関して, 以下のコマンドで, サービスを一時的に停止する. ただし, 再起動すると再びこれらのサービスも起動してしまうため, 作業途中で再起動の必要性が出てしまった場合は注意. 永続的にサービスを停止する作業は phase 3 にて行う.
# /etc/init.d/<service> stop
- サービス停止作業
- ika から tako への /home/epalab などの領域の転送を止める. (納多)
- /etc/cron.local/daily/230_rsync_epabk を削除
- ssh などでのログインユーザが居る場合, プロセスを削除 (森川)
- ps aux コマンドで確認後, そのようなプロセスがある場合に, kill <プロセスID> とする.
phase 2 13:40 - 14:00
ika から tako へ データをコピー
- /home ディレクトリを tako へ rsync (中本)
- 基本的には, 先週金曜日の中本ログ参照のこと.
- ただし, 今回は既に DNS を停止しているため, 以下の点に注意
- tako 側の root の authorized_keys に記述される 「from="*.epa.scitec.kobe-u.ac.jp"」も削除してから 転送を行う必要があるので注意せよ.
- tako にアクセスする際にホスト名ではなく IP アドレスで指定する.
- いっそのこと, /root/.ssh/authorized_keys のセキュリティ的 設定を消す方が楽であろう.
- 作業後には, ika ⇒ tako への転送は許可しないよう, /etc/ssh/sshd_config の PermitRootLogin を no とし, /root/.ssh/authorized_keys を /root/.ssh/authorized_keys.bk へ リネームする.
- /var/spool/cron/crontabs 以下の各ファイルを tako へコピー (中本)
- scp コマンドで移す際には, パーミッションの設定を変えて しまわないように注意.
- /etc/shadow のユーザ部分を tako へコピー (納多)
- ika, takoに別々の仮想端末でログインする. takoの/etc/shadowを/etc/shadow~にバックアップ. ikaの/etc/shadowのユーザー部分(morikawaから始まる行以下全て)を takoの/etc/shadowにコピー.
/usr/local/qpopper/pop.auth を tako へコピー (納多)
ika$ cd /usr/local/qpopper/ ika$ sudo cp pop.auth ~/ ika$ sudo chown noda:noda pop.auth ika$ scp pop.auth tako: ika$ slogin tako tako$ cd /usr/local/qpopper tako$ sudo mv pop.auth pop.auth~ tako$ sudo mv ~/pop.auth . tako$ sudo chown mail:pop pop.auth tako$ ls -l tako$ rm pop.auth~ tako$ exit ika$ rm pop.auth
phase 3 14:00 - 15:00
ika の設定変更
- dns (納多)
takoのセカンダリに設定
ika$ cd /usr/local/bind/etc/ ika$ cp -r namedb/ namedb-20080825 ika$ cd namedb ika$ vi named.conf
zone "ahs.scitec.kobe-u.ac.jp"で始まる行以下を次のように変更.
zone "ahs.scitec.kobe-u.ac.jp" { type slave; file "slave/ahs.zone"; allow-query { any; }; masters { 133.30.109.21; }; }; zone "epa.scitec.kobe-u.ac.jp" { type slave; file "slave/epa.zone"; allow-query { any; }; masters { 133.30.109.21; }; }; zone "0/25.109.30.133.in-addr.arpa" { type master; file "slave/ahs.rev"; allow-query { any ; } ; allow-transfer { 133.30.104.1 ; } ; };
- named-checkconf named.conf を実行してフォーマットをチェック.
要らないファイルを消す.
rm epa.zone ahs.zone epa.zone epa.zone.bk \ PROTO.* named.root.old-20080521 *.BAK make-localhost rm -r work localhost-v6.rev
slave ディレクトリを作成, パーミッションを bind:bind にする.
ika$ cd /usr/local/bind/etc/namedb/ ika$ mkdir slave ika$ chown bind:bind slave
移行が終ったら起動
/etc/rc.d/bind restart
- qmail (中本)
- 外から来たメールを受け取らないように, and
ログメールを飛ばすのに必要な設定だけにするため,
/var/qmail/control 以下の locals, rcpthosts を以下のように
変更する. 移行が終わったら起動する.
locals, rcpthosts (両方とも中身は同じ)
localhost
- 外から来たメールを受け取らないように, and
ログメールを飛ばすのに必要な設定だけにするため,
/var/qmail/control 以下の locals, rcpthosts を以下のように
変更する. 移行が終わったら起動する.
- 再起動しても以下のサービスが立ち上がらないようにする.
- http (https), pop3
apache2, openbsd-inetd に関して, 以下のコマンドによって OS が起動する際に立ち上がらないように しておく. <service> には上記のサービス名を与える.
# cd /etc/init.d # update-rc.d -f <service> remove # chmod 644 <service>
余談だが, これら停止したサービスを再開する場合には, 以下のようにするとよい.
# cd /etc/init.d # update-rc.d <service> defaults # chmod 755 <service>
- 確認作業
- 再起動を行い, ps aux コマンドで停止したはずのサービスが 立ち上がっていないことを確認する.
- http (https), pop3
takoの設定を変更
- ika⇔tako のデータ共有を立ち上げるようにし, tako⇒ika へ
データを送るようにする. (中本)
- 作業自体は, Hiki 上のものを参考に行った. (特に再構築において追記すべき事項はなし).
dns (納多)
tako$ cd /usr/local/bind/etc tako$ cp -r namedb namedb-20080825
要らないファイルを消す
tako$ rm epa.zone.bk PROTO.* named.root.old-20080521 *.BAK make-localhost tako$ rm -r work localhost-v6.rev tako$ vi named.conf
allow-transfer に新しいセカンダリである133.30.109.22 (ika) を追加.
zone "ahs.scitec.kobe-u.ac.jp" { type master; file "ahs.zone"; allow-query { any ; } ; allow-transfer { 133.30.109.22 ; 133.30.104.1 ; 133.3.8.211 ; } ; }; zone "epa.scitec.kobe-u.ac.jp" { type master; file "epa.zone"; allow-query { any ; } ; allow-transfer { 133.30.109.22 ; 133.30.104.1 ; } ; }; zone "0/25.109.30.133.in-addr.arpa" { type master; file "ahs.rev"; allow-query { any ; } ; allow-transfer { 133.30.109.22 ; 133.30.104.1 ; } ; };
- ゾーンファイルの修正.
- ahs.rev,ahs.zone,epa.zoneのシリアルを更新.
- epa.scitec.kobe-u.ac.jp が tako を指すようになっていることを確認.
終わったら再起動する.
tako$ /etc/rc.d/bind start
- ゾーンファイルの修正.
- qmail (中本)
- /var/qmail/control 以下の locals, rcpthosts を以下のように
変更する.
locals, rcpthosts (両方とも中身は同じ)
localhost tako.epa.scitec.kobe-u.ac.jp epa.scitec.kobe-u.ac.jp tako.ahs.scitec.kobe-u.ac.jp ahs.scitec.kobe-u.ac.jp tako.aoe.scitec.kobe-u.ac.jp aoe.scitec.kobe-u.ac.jp tako.cps.scitec.kobe-u.ac.jp cps.scitec.kobe-u.ac.jp
- /var/qmail/control 以下の locals, rcpthosts を以下のように
変更する.
- 以下のサービスが定常的に立ち上がるように設定する.
- http (https), dns, tcpserver (smtp), inetd (pop3)
gradis の設定を変更 (納多)
gradisの指す{epa,cps,aoe}.scitec.kobe-u.ac.jpのネームサーバを ika の IPアドレス(133.30.109.22) から takoの IPアドレス(133.30.109.21) に変更.
gradis$ cd /var/named/ gradis$ cp scitec.zone scitec.zone.20080825 gradis$ vi scitec.zone ;; for 133.30.109.22 domain ; ahs ahs.scitec.kobe-u.ac.jp. 300 IN NS ika.epa.scitec.kobe-u.ac.jp. ika.epa.scitec.kobe-u.ac.jp. 300 IN A 133.30.109.22 ahs.scitec.kobe-u.ac.jp. 300 IN NS gradis.scitec.kobe-u.ac.jp. ; epa epa.scitec.kobe-u.ac.jp. 300 IN NS ns.epa.scitec.kobe-u.ac.jp. ns.epa.scitec.kobe-u.ac.jp. 300 IN A 133.30.109.22 epa.scitec.kobe-u.ac.jp. 300 IN NS gradis.scitec.kobe-u.ac.jp. ; aoe aoe.scitec.kobe-u.ac.jp. 300 IN A 133.30.109.22 ; cps cps.scitec.kobe-u.ac.jp. 300 IN A 133.30.109.22
を,
;; for 133.30.109.22 domain ; ahs ahs.scitec.kobe-u.ac.jp. 300 IN NS tako.epa.scitec.kobe-u.ac.jp. tako.epa.scitec.kobe-u.ac.jp. 300 IN A 133.30.109.21 ahs.scitec.kobe-u.ac.jp. 300 IN NS gradis.scitec.kobe-u.ac.jp. ; epa epa.scitec.kobe-u.ac.jp. 300 IN NS ns.epa.scitec.kobe-u.ac.jp. ns.epa.scitec.kobe-u.ac.jp. 300 IN A 133.30.109.21 epa.scitec.kobe-u.ac.jp. 300 IN NS gradis.scitec.kobe-u.ac.jp. ; aoe aoe.scitec.kobe-u.ac.jp. 300 IN A 133.30.109.21 ; cps cps.scitec.kobe-u.ac.jp. 300 IN A 133.30.109.21
として, その下のMXレコード
aoe.scitec.kobe-u.ac.jp. 300 IN MX 10 ika.epa.scitec.kobe-u.ac.jp. cps.scitec.kobe-u.ac.jp. 300 IN MX 10 ika.epa.scitec.kobe-u.ac.jp.
を
aoe.scitec.kobe-u.ac.jp. 300 IN MX 10 tako.epa.scitec.kobe-u.ac.jp. cps.scitec.kobe-u.ac.jp. 300 IN MX 10 tako.epa.scitec.kobe-u.ac.jp.
とする. シリアルを更新する. /etc/named.conf をまずバックアップ
gradis$ cd /etc/ gradis$ sudo cp named.conf named.conf.20080825
/etc/named.conf の {ahs,epa}.scitec.kobe-u.ac.jpの ゾーン情報にあるmastersの IP 133.30.109.22 を 21に書き換える.
終ったら再起動する.
gradis$ sudo /etc/init.d/named restart
電脳サーバの設定を変更 (森川)
- /GFD_Dennou_Club/dc-arch/kobe/.ssh/known_hosts から, これまでの EPA サーバのホスト鍵を削除し, 再度アクセスして 新 EPA サーバ (tako) のホスト鍵を保存する.
phase 4 15:20 - 16:00
移行チェック
- tako
- http: 表示できるか, hikiに書き込めるか, gate による
登録や変更は可能か
tako の apache に mod_rewrite が install されていなかったので, モジュールを追加.
# cd /usr/local/src/httpd-2.2.8/modules/mapper # apxs -c mod_rewrite.c # apxs -i -a -n rewrite mod_rewrite.la
- 設定ファイルの編集. mod_rewrite rule を幾つかまとめて整理. 詳細は https://epa.scitec.kobe-u.ac.jp/~itpass/hiki/hiki.cgi?%5BEPA2008%5Dapache2%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A4%C8%C0%DF%C4%EA
- pop: メールをとってこれるか
- smtp: メールを出せるか, 受け取れるか
- mailing list: メールが配送されるか
- dns: 問い合わせに応じるか, 正しいデータを返すか
- dig epa.scitec.kobe-u.ac.jp で133.30.109.21を返すか
- http: 表示できるか, hikiに書き込めるか, gate による
登録や変更は可能か
- ika
- http: 無効
- pop: 無効
- smtp: submitは有効にするが, 受け取らない(要検討)
- mail spool 内の再送待ちなどのメールを再送信するため, という 意味もある.
- dns: takoのセカンダリとして設定されていることを確認する
- dig epa.scitec.kobe-u.ac.jp で133.30.109.21を返すか
- /usr/local/bind/etc/namedb/slave 以下にゾーンファイルが できているか
当日: 移行終了 16:00
- 終了報告を投げる. (森川)
- 障害報告はitpass@ 宛まで, とする.
- ssh でアクセスする際のホスト鍵が変更されていることをアナウンスする
翌日
ika, tako, gradis の DNS の TTL を元に戻す. (村上)
ika:
変更なし.
tako:
1) /usr/local/bind/etc/namedb のバックアップとして /usr/local/bind/etc/namedb-20080826 を作成. 2) /usr/local/bind/etc/namedb/{epa.zone,ahs.zone,ahs.rev} の$TTLを300から3600に変更. シリアル更新. 3) 再起動.
gradis:
1) /var/named/scitec.zone のバックアップとして /var/named/scitec.zone.20080826 を作成 2) /var/named/scitec.zoneに記載されているepa,ahs,aoe,cpsなどの レコードで指定しているTTL部分を削除(これでデフォルト値が 使われる). シリアル更新. 3) おまけ. /etc/named.confのバックアップとして/etc/named.conf.20080826 を作成. /etc/named.confに書かれている 109.30.133.in-addr.arpa ゾーンの ファイル置場を /var/named/master/ahs/ahs.revから /var/named/master/epa/epa.rev に変更. 実際の置場もそのように変更. 4) 再起動
- 追加事項
prefix.pl の設置
cps 関連のメーリングリストに流れたメールの件名に番号を振るため, prefix.pl を /usr/local/lib/prefix.pl に置く.
ika:/usr/local/lib/prefix.pl
を以下の 2 ヶ所に置いた. 後者はドキュメントとして置いただけであり, 以後のサーバ交代作業では不要である.
tako:/usr/local/lib/prefix.pl tako:/home/itpass/ftp/epa/ml_prefix/prefix.pl
パーミッションは 775 にする.
gate-db-to-ezmlm の設定
/usr/local/gate/bin/gate-db-to-ezmlm を以下のように変更する.
--- /usr/local/gate/bin/gate-db-to-ezmlm 2008-07-31 12:19:21.000000000 +0900 +++ gate-db-to-ezmlm 2008-08-25 16:55:29.000000000 +0900 @@ -31,12 +31,13 @@ # # 0. 実行ファイル, ドメインの指定 # -$domainname='gfd-dennou.org'; +#$domainname='gfd-dennou.org'; +$domainname='epa.scitec.kobe-u.ac.jp'; #$domainname='localhost'; -$ezmlmlist='/usr/bin/ezmlm-list'; -$ezmlmsub='/usr/bin/ezmlm-sub'; -$ezmlmunsub='/usr/bin/ezmlm-unsub'; +$ezmlmlist='/usr/local/ezmlm/bin/ezmlm-list'; +$ezmlmsub='/usr/local/ezmlm/bin/ezmlm-sub'; +$ezmlmunsub='/usr/local/ezmlm/bin/ezmlm-unsub'; # # 0. エラー処理
後日の片付け
移行作業に関連する作業を Hiki 上にまとめる.
忘れていたため後から行ったこと
- sudoers ファイルから chikuwa? の情報を削除する.
Keyword(s):
References:[[EPA2008]サーバ交換作業] [[EPA2008]2008年度前期サーバ構築ログ] [[EPA2008b]サーバ交換作業]