IT pass HikiWiki - [ITPASS2012]サーバ交換作業(tako) Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
{{toc_here}}
= 当日作業
== 概要
大まかな作業内容は以下の通りである.
* 前半 (root パスワード保持者が中心になって行う)
* プロセスやサービスの停止
* 一時的に root ログインを許可して, 必要なファイルを転送
* 後半 (全員で行う)
* ホスト名・IP アドレスの交換後, ネットワーク再起動
* 各種サービスの設定変更後, OS 再起動
* サービスなどの動作確認
特に記述がない限り, ひとつの phase 内の全作業が
完了してから次の phase に進むようにすること.
また同一 phase 内に複数項目
(Hiki ソースでの "===" の項目)
がある場合は複数人で同時に行ってもよい.
== phase 0 (準備)
* サーバ交換中は Hiki 上のマニュアルを参照できなくなるため,
作業者は予めサーバ交換マニュアルを手元に保存しておく.
* サーバ交換マニュアルから引用されているページについても忘れないように.
* Hiki ページの印刷は推奨されない. 長いコマンドなどが切れてしまうため.
== phase 1 (入替え開始)
ここでは並行できる作業が少ないため.
一部の作業メンバーでスタートする.
((*作業メンバーには, tako, ika の root パスワードを
持っている人を含めるようにする*))
(ika の root パスワード保持者は念のため).
=== tako のログインユーザの削除, プロセスの削除, サービスの停止
((<[ITPASS2012]サーバ再起動手順>)) を参考に,
tako のログインユーザの削除, プロセスの削除, サービスの停止を行う.
機器のアンマウントや再起動まではしない.
== phase 2 (tako の root ログイン許可)
=== tako の root ログイン許可
tako において一時的に root ログインを許可する.
方法は((<[ITPASS2012]root ログインの許可・禁止>))を参考にする.
== phase 3 (ika から tako へ各種データをコピー)
((*この phase の作業には tako の root パスワードが必要*)).
scp コマンドで移す際には, パーミッションやグループ等の設定を変えてしまわないように注意 (オプション p の使用).
=== ika から tako へ /home 領域を rsync
前回 rsync を行ってから変更があった分のために再度 rsync を行う.
前回 シェルスクリプトF2011を作ってある場合はそれを実行するのみでよい.
作業内容の詳細は((<"[ITPASS2012]サーバ交換事前作業">))と同じなので, 不明点がある場合はそちらを参照のこと.
この作業は多少時間がかかる可能性がある.
コマンドの実行が成功していること確認したら,
別途端末を開いて他の作業を並行して行うと時間が節約できる.
=== ika から tako へ各種設定ファイルをコピー
* ika から tako へ cron の設定ファイルをコピー
ika# scp -p -r /var/spool/cron/crontabs 133.30.109.21:/var/spool/cron/
/var/spool/cron/ 以下のパーミッションと所有者, グループがika と同じになっているか確認する.
* ika から tako へ popauth の設定ファイル /usr/local/qpopper/pop.auth をコピー
ika# cd /usr/local/qpopper/
ika# cp pop.auth pop.auth.20121107
ika# /usr/local/qpopper# scp -p /usr/local/qpopper/pop.auth
133.30.109.21:/usr/local/qpopper/
* ika から tako へ /etc/shadow のユーザ部分をコピー
ika# cd /usr/local/qpopper/
ika# cp pop.auth pop.auth.20121107
ika# /usr/local/qpopper# scp -p /usr/local/qpopper/pop.auth
133.30.109.21:/usr/local/qpopper/
* tako の /etc/shadow を
/etc/shadow.YYYYMMDD (YYYYMMDD は今日の日付) にバックアップ.
tako# cd /etc
tako# cp shadow shadow.20121107
* ssh, diff コマンドを組み合わせて
ika と tako の /etc/shadow を比較した.
ika# ssh 133.30.109.21 cat /etc/shadow | diff -u - /etc/shadow | lv
* 上記の出力を見て, tako 側の /etc/shadow に書かれていない UID のうち
1000 〜 29999 までのものがあるか確認する. あれば
ika 側からコピーする. (UID とユーザ名の対応については /etc/passwd を参照)
== phase 4 (root ログイン禁止)
=== tako の root ログイン禁止
* /home 領域の rsync が終わっていることを確認する
* tako に対する root ログインが必要な作業が終わったので, ((<[ITPASS2012]root ログインの許可・禁止>))を参考に root ログインを禁止した状態に戻す.
== phase 6 (tako, ika の交換: ネットワークの再起動)
=== ネットワークの再起動
((*混乱を避けるため, ika, tako 両方ともに以下の作業を行う
ユーザ以外は全員ログアウトし,
ネットワークの再起動が完了するまでログインは控えたほうがよい.*))
ネットワークを再起動する.
# /etc/init.d/networking restart
この作業後, tako (または ika) に接続できなくなった場合は,
該当サーバを再起動し,
phase 1 を参考に全サービスを一時停止しておく.
== phase 10 (バックアップの確認)
=== 電脳サーバへのバックアップの確認
ITPASS サーバの資源は, 毎日電脳サーバへバックアップされている. cron によって毎日実行されているそのシェルスクリプトが正常に作動しているか試行する.
電脳サーバにアカウントを持つ者がログインし,
$ sudo -u kobe -s
によって kobe になり, kobe のホームディレクトリに移動.
そこで,
$ ./itpass_rsync_epa2dennou.sh -n
$ ./epalab_rsync_epa2dennou_yyh.sh -n
を実行する. その後, 出力されたログを確認する.
$ cd ./itpass_rsync_epa2dennnou_log
$ less itpass_rsync_epa2dennnou.log
$ cd ../epalab_rsync_epa2dennnou_log
$ less ./epalab_rsync_epa2dennnou.log
2 つとも正常に出力されていれば OK.
{{toc_here}}
= 当日作業
== 概要
大まかな作業内容は以下の通りである.
* 前半 (root パスワード保持者が中心になって行う)
* プロセスやサービスの停止
* 一時的に root ログインを許可して, 必要なファイルを転送
* 後半 (全員で行う)
* ホスト名・IP アドレスの交換後, ネットワーク再起動
* 各種サービスの設定変更後, OS 再起動
* サービスなどの動作確認
特に記述がない限り, ひとつの phase 内の全作業が
完了してから次の phase に進むようにすること.
また同一 phase 内に複数項目
(Hiki ソースでの "===" の項目)
がある場合は複数人で同時に行ってもよい.
== phase 0 (準備)
* サーバ交換中は Hiki 上のマニュアルを参照できなくなるため,
作業者は予めサーバ交換マニュアルを手元に保存しておく.
* サーバ交換マニュアルから引用されているページについても忘れないように.
* Hiki ページの印刷は推奨されない. 長いコマンドなどが切れてしまうため.
== phase 1 (入替え開始)
ここでは並行できる作業が少ないため.
一部の作業メンバーでスタートする.
((*作業メンバーには, tako, ika の root パスワードを
持っている人を含めるようにする*))
(ika の root パスワード保持者は念のため).
=== tako のログインユーザの削除, プロセスの削除, サービスの停止
((<[ITPASS2012]サーバ再起動手順>)) を参考に,
tako のログインユーザの削除, プロセスの削除, サービスの停止を行う.
機器のアンマウントや再起動まではしない.
== phase 2 (tako の root ログイン許可)
=== tako の root ログイン許可
tako において一時的に root ログインを許可する.
方法は((<[ITPASS2012]root ログインの許可・禁止>))を参考にする.
== phase 3 (ika から tako へ各種データをコピー)
((*この phase の作業には tako の root パスワードが必要*)).
scp コマンドで移す際には, パーミッションやグループ等の設定を変えてしまわないように注意 (オプション p の使用).
=== ika から tako へ /home 領域を rsync
前回 rsync を行ってから変更があった分のために再度 rsync を行う.
前回 シェルスクリプトF2011を作ってある場合はそれを実行するのみでよい.
作業内容の詳細は((<"[ITPASS2012]サーバ交換事前作業">))と同じなので, 不明点がある場合はそちらを参照のこと.
この作業は多少時間がかかる可能性がある.
コマンドの実行が成功していること確認したら,
別途端末を開いて他の作業を並行して行うと時間が節約できる.
=== ika から tako へ各種設定ファイルをコピー
* ika から tako へ cron の設定ファイルをコピー
ika# scp -p -r /var/spool/cron/crontabs 133.30.109.21:/var/spool/cron/
/var/spool/cron/ 以下のパーミッションと所有者, グループがika と同じになっているか確認する.
* ika から tako へ popauth の設定ファイル /usr/local/qpopper/pop.auth をコピー
ika# cd /usr/local/qpopper/
ika# cp pop.auth pop.auth.20121107
ika# /usr/local/qpopper# scp -p /usr/local/qpopper/pop.auth
133.30.109.21:/usr/local/qpopper/
* ika から tako へ /etc/shadow のユーザ部分をコピー
ika# cd /usr/local/qpopper/
ika# cp pop.auth pop.auth.20121107
ika# /usr/local/qpopper# scp -p /usr/local/qpopper/pop.auth
133.30.109.21:/usr/local/qpopper/
* tako の /etc/shadow を
/etc/shadow.YYYYMMDD (YYYYMMDD は今日の日付) にバックアップ.
tako# cd /etc
tako# cp shadow shadow.20121107
* ssh, diff コマンドを組み合わせて
ika と tako の /etc/shadow を比較した.
ika# ssh 133.30.109.21 cat /etc/shadow | diff -u - /etc/shadow | lv
* 上記の出力を見て, tako 側の /etc/shadow に書かれていない UID のうち
1000 〜 29999 までのものがあるか確認する. あれば
ika 側からコピーする. (UID とユーザ名の対応については /etc/passwd を参照)
== phase 4 (root ログイン禁止)
=== tako の root ログイン禁止
* /home 領域の rsync が終わっていることを確認する
* tako に対する root ログインが必要な作業が終わったので, ((<[ITPASS2012]root ログインの許可・禁止>))を参考に root ログインを禁止した状態に戻す.
== phase 6 (tako, ika の交換: ネットワークの再起動)
=== ネットワークの再起動
((*混乱を避けるため, ika, tako 両方ともに以下の作業を行う
ユーザ以外は全員ログアウトし,
ネットワークの再起動が完了するまでログインは控えたほうがよい.*))
ネットワークを再起動する.
# /etc/init.d/networking restart
この作業後, tako (または ika) に接続できなくなった場合は,
該当サーバを再起動し,
phase 1 を参考に全サービスを一時停止しておく.
== phase 10 (バックアップの確認)
=== 電脳サーバへのバックアップの確認
ITPASS サーバの資源は, 毎日電脳サーバへバックアップされている. cron によって毎日実行されているそのシェルスクリプトが正常に作動しているか試行する.
電脳サーバにアカウントを持つ者がログインし,
$ sudo -u kobe -s
によって kobe になり, kobe のホームディレクトリに移動.
そこで,
$ ./itpass_rsync_epa2dennou.sh -n
$ ./epalab_rsync_epa2dennou_yyh.sh -n
を実行する. その後, 出力されたログを確認する.
$ cd ./itpass_rsync_epa2dennnou_log
$ less itpass_rsync_epa2dennnou.log
$ cd ../epalab_rsync_epa2dennnou_log
$ less ./epalab_rsync_epa2dennnou.log
2 つとも正常に出力されていれば OK.