[Memo2009][ITPASS] サーバ交換作業(清水, 黒田)

概要

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

ITPASS サーバは本サーバと予備サーバの 2 台体制で運用しており, 以下の手順で再構築を行うこととなる. なお, 入替え前のサーバと入替え後のサーバのホスト名は それぞれ tako-itpass, ika-itpass である.

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

ika-itpass から new へ各種データをコピー

  • ika-itpass の /usr/local/qpopper/pop.auth を new へコピー

    ika-itpass$ cd /usr/local/qpopper/
    ika-itpass$ sudo cp pop.auth ~/
    ika-itpass$ sudo chown mikity:mikity pop.auth
    ika-itpass$ sudo scp pop.auth tako-itpass:
    ika-itpass$ slogin tako-itpass
    tako-itpass$ cd /usr/local/qpopper
    tako-itpass$ sudo mv pop.auth pop.auth~
    tako-itpass$ sudo mv ~/pop.auth .
    tako-itpass$ sudo chown pop:mail pop.auth
    tako-itpass$ ls -l
    tako-itpass$ rm pop.auth~
    tako-itpass$ exit
    ika-itpass$ rm pop.auth

phase 3

ika の設定変更を行う.

  • qmail の設定変更

    外から来たメールを受け取らないように, and ログメールを飛ばすのに必要な設定だけにするため, /var/qmail/control 以下の locals, rcpthosts を以下のように 変更する. 移行が終わったら起動する.

    変更前

    localhost
    ika-itpass.scitec.kobe-u.ac.jp
    itpass.scitec.kobe-u.ac.jp
    aoe.scitec.kobe-u.ac.jp 
    cps.scitec.kobe-u.ac.jp

    変更後

    localhost

tako の設定変更する.

  • qmail の設定変更

    /var/qmail/control 以下の locals, rcpthosts が以下のように 変更されているかチェックする. されていない場合は以下のように編集する.

    localhost
    ika-itpass.scitec.kobe-u.ac.jp
    itpass.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
  • 公開鍵認証の際のセキュリティ設定を変更する (通信制限)

    tako 側の ika に対する通信制限の設定を行う. 先ほど, ika から tako に rsync でファイルを転送するために, root のログインを許可したので, 設定を変更して元に戻す. /etc/ssh/sshd_config の

    PermitRootLogin yes

    という部分を

    PermitRootLogin no

    に変更したのち,

    ika-itpass# /etc/init.d/ssh restart

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

    この時点で, ika-itpass と tako-itpass が入れ換わった. これまで tako-itpass として扱っていたサーバ機は ika-itpass として 扱うことになった. DNS 班の作業を参照

prefix.pl の修正

10/22 (木) 時点で prefix.pl の編集が適当でなかったことが phase 3 の作業中に分かったため, ika prefix.pl を tako の /usr/local/lib の prefix.pl と差し替えた.

phase 3 (続き)

  • [EPA2008]サーバと予備サーバでのバックアップの設定の作業を行う
    • 概要

      ITPASS サーバにはバックアップとサーバ本体のトラブル時に代替するための 予備サーバを立ててある. /home 以下のいくつかの領域に関して, ITPASS サーバ本体から予備サーバへ定期的にバックアップを取る.

    • バックアップする領域

      バックアップを取る領域は, 原則的にグループで管理する資源や, システムにとって必要な資源である.

    • 2009/10/23 現在, 以下の領域をバックアップの対象とする.
      • aoelab cps epalab itpass pschool gate
    • バックアップの際の認証方式

      バックアップには rsync を用いる. root アカウントでバックアップを行うが, セキュリティを高めるため, その認証には SSH + 公開鍵暗号を用いる.

    • 準備

      以降では, 新しく運用する EPA サーバのホスト名を itpass, 予備サーバを itpassbak と称する. 実際には, 使用するホストの名称に 置き換えて作業を行うこと.

      まず, itpass, itpassbk ともに SSH デーモンが立ち上がっている必要があるため, [EPA2008]sshのインストールと設定 を先に行っておくこと. また, rsync を用いてバックアップを行うため, 以下のように rsync パッケージをインストールせよ.

      # apt-get install rsync
      • インストールは既に行われていたので, 設定と rsync のパッケージがちゃんと動作することを確認する.
    • tako-itpass 側の通信許可

      最近の OpenSSH では, デフォルトでは root のログインを許可しないため, 設定を変更する. /etc/ssh/sshd_config の

      PermitRootLogin no

      という部分を

      PermitRootLogin forced-commands-only

      に変更したのち,

      tako-itpass# /etc/init.d/ssh restart

      として設定を反映すること. これにより, epabk 側の鍵の設置 で指定したコマンドでのみログインを許可することとなる.

    • ika-itpass 側でのデータ転送用スクリプトの設置
      • 自作スクリプト用 cron ディレクトリ作成

        自作の cron 用スクリプト置き場として, /etc/cron.local を作成する.

        # mkdir /etc/cron.local
        # mkdir /etc/cron.local/daily
        • これも既に作成されていた.
    • バックアップ用スクリプトの用意

      rsync_epabk.sh を参考に /etc/cron.local/daily/230_rsync_itpassbk を設置する. (スクリプト先頭の番号は, その他のスクリプトを置いた際, どれを 優先して実行するかを決めるためのものである. 若い番号のものほど 先に実行される).

      • ちなみにこの辺りからは ika-itpass で行う作業なので, 間違って tako-itpass で作業を行っている人はスクリプトの設置の頭まで 戻るように

      以下のように /etc/cron.local/daily/230_rsync_itpassbk に実行権限を 設定する.

      # chmod 755 /etc/cron.local/daily/230_rsync_itpassbk
    • バックアップ用スクリプトの編集

      ika-itpass および tako-itpass のホスト名やバックアップする領域に応じて, 230_rsync_itpassbk を編集する. 主に編集するのは以下の項目である.

      ["SHARED_HOST"]

      バックアップを行う 2 つのホスト (本文書での ika-itpass および tako-itpass) のドメイン名 (ホスト名 + ドメイン名) をスペースで区切って 記述する. 送信元と送信先で順序を変える必要は無い.

      このスクリプトではスクリプトを起動するホストが必ず 転送元で, もう一方が転送先になるようになっている.

      • 入手した時点で書かれていると思うが, 確認しておく. "ika-itpass.scitec.kobe-u.ac.jp tako-itpass.scitec.kobe-u.ac.jp" とあればOK. 上記のように順番はどちらでもよい.
      ["BKSUBDIRS"]

      転送する領域を記述する. これは バックアップする領域 に応じて書き換えること.

      なお, "hoge/" 等と最後にスラッシュをいれると転送がうまく いかなくなるので注意すること.

      • BKSUBDIRS="aoelab cps epalab itpass pschool gate" と なっていればよい
    • crontab の編集

      /etc/crontab を編集する. 以下の一行を追加する.

      25 6    * * *   root    cd / && run-parts --report /etc/cron.local/daily

      出力結果に関してメールを送信したい場合には以下のようにすると良い.

      25 6    * * *   root    cd / && run-parts --report /etc/cron.local/daily |mail -s "`hostname -f` daily run outputs" xxx@xxx.xxxx
      • これも Mail 構築のときに編集済み. 確認したときにアドレスが "itpadmin_at_itpass.scitec.kobe-u.ac.jp" となっていればよい.
    • バックアップログファイルの作成

      ログファイルのためのディレクトリとファイルを作成しておく. なお, このログファイルの場所は バックアップ用スクリプトの用意

      で用意した 230_rsync_itpassbk 内の LOGFILE を書き換えることで変更できる.

      # mkdir /var/log/rsync-log
      # touch /var/log/rsync-log/itpassbk.log 
      • touch は指定したファイルが存在しないときは, 中身が空のファイルを作成する. touch をする前に itpassbk.log というファイルがなくても戸惑わないように.
    • バックアップログファイルの logrotate の設定

      rsync のログを 1 週間毎に分割する. /etc/logrotate.d/ 以下に rsync_itpassbk という設定ファイルを作成.

      # vi /etc/logrotate.d/rsync_itpassbk

      以下の内容を書き込む.

      /var/log/rsync-log/itpassbk.log {
          weekly
          create 0644 root root
          rotate 12
      }
    • 参考資料

phase 4

  • 移行の最終チェック
    • ika
      • pop: メールをとってこれるか
      • smtp: メールを出せるか, 受け取れるか
      • mailing list: メールが配送されるか
    • tako
      • pop: 無効になっているか
      • smtp: submit は有効にするが, 受け取らない設定になっているか
  • new の smtp や Mailing list の確認は Mail の構築の際と同じような手順で チェックする(qmail-inject で外にメールが届くか, 外からメールを送って届くか, Mailing list にメールを送って届くか).
  • pop の確認の準備 ika の利用者は自分の ika のアカウントで, .qmail の設定と Mailbox の作成 popauth コマンドを行ってパスワードを作っておく作業をする

    メーラーの設定は pop サーバ, smtp サーバはどちらも itpass.scitec.kobe-u.ac.jp にする 認証形式は APOP で, 暗号化は pop も smtp も無しにする

    受信のときにパスワードを要求されるので, popauth で作成したパスワードを入力する.

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

Last modified:2009/11/20 14:49:03
Keyword(s):
References:[[ITPASS2009]2009年度サーバ構築ログ]