IT pass HikiWiki - [ITPASS2010]サーバ交換作業(MAIL) Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

[((<ITPASSサーバ構築ドキュメント>)) へ戻る]

= 概要

ITPASS サーバでは, 毎年 9-10 月に管理・運営技術と後継者育成を目的として, サーバの再構築を行っている.

ITPASS サーバは本サーバと予備サーバの 2 台体制で運用しており, 以下の手順で再構築を行うこととなる.

なお, 入替え前のサーバと入替え後のサーバのホスト名はそれぞれ old, new である. new と old は適宜読み替える.

  (1) new に OS とサーバソフトウェアのインストール
      (期間: 1 週間〜 1ヶ月)
  (2) 下記の入れ替え日には ITPASS サーバを停止することとなるため,
      停止アナウンスを数度行う (入替え日の 2 週間前から当日 30 分前まで).
  (3) 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

* root のログインを許可するため, 設定を変更する

  以下の設定は DNS 班が行うのでここでは作業しなくてよいが, 後で確認しておく.


  

  new の /etc/ssh/sshd_config で,

    PermitRootLogin no

  という部分を

    PermitRootLogin yes

  に変更し, さらに, 任意のコマンドを実行出来るように,

    PermitRootLogin forced-commands-only

  という部分をコメントアウトする. その後,

    new# /etc/init.d/ssh restart

  として設定を反映すること. これにより, root のログインを許可することとなる.



* 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 アドレスを入れ替える.
  また, この作業は phase 2 の一番最後に行うこと.

  * ホスト名の変更

    * 編集するファイル
      * /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
      * /var/qmail/control/defaulthost
      * /var/qmail/control/me
   # 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 で DNS 班が行うのでここでは作業しなくてよいが, 後で確認しておく.
  先ほど, old から new に rsync でファイルを転送するために, root のログインを許可したので, 設定を以下のように変更して元に戻す.

  /etc/ssh/sshd_config の

      PermitRootLogin yes

  という部分を

      PermitRootLogin no

  に変更したのち,

      new# /etc/init.d/ssh restart

  として設定を反映することにより元に戻る.




== phase 3

old の設定変更を行う.

* qmail の設定変更

  外から来たメールを受け取らないように, さらに cron のログメールを飛ばすのに必要な設定だけにするため, /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

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: メールをとってこれるか
  * smtp: メールを出せるか, 受け取れるか
  * mailing list: メールが配送されるか
* old
  * pop: 無効になっているか
  * smtp: submit は有効にするが, 受け取らない設定になっているか
         * cron のログが管理者に届くようになっているか



* 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 で作成したパスワードを入力する.


[((<ITPASSサーバ構築ドキュメント>)) へ戻る]