IT pass HikiWiki - [Memo2009][ITPASS] サーバ交換作業(清水, 黒田) Diff

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

{{toc}}

[((<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 班の作業を参照|[Memo2009][ITPASS] サーバ交換作業(村上(健), 古家, 井谷)#phase 3>))


== 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

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

  * ika-itpass 側でのデータ転送用スクリプトの設置

    * 自作スクリプト用 cron ディレクトリ作成

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

        # mkdir /etc/cron.local
        # mkdir /etc/cron.local/daily

      * これも既に作成されていた.

  * バックアップ用スクリプトの用意

    ((<rsync_epabk.sh|URL:../epa/system_backup_2008/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

      転送する領域を記述する. これは ((<URL:#バックアップする領域>))
      に応じて書き換えること.

      なお, "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" となっていればよい.

  * バックアップログファイルの作成

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

    で用意した 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
      }


  * 参考資料

    * ((<"佐藤裕介, 2005: rsync + cron + ssh (rsyncd を立てない編)"|URL:http://www2s.biglobe.ne.jp/~nuts/labo/inti/cron-rsync-ssh-nodaemon.html>))
    * ((<"梅原大祐, 2006: rsync + cron + ssh でセキュアな自動リモートバックアップ"|URL:http://www.imc.cce.i.kyoto-u.ac.jp/~umehara/misc/comp/20061121.html>))
    * ((<[Memo2008][EPA]EPA サーバ交換作業ログ(北野・須賀)>))



== 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サーバ構築ドキュメント>))へ戻る]