IT pass HikiWiki - [Memo2017][ITPASS]サーバ交換作業 (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 のログインユーザの削除, プロセスの削除, サービスの停止
#((<[ITPASS2016]サーバ再起動手順>)) を参考に,
tako のログインユーザの削除, プロセスの削除, サービスの停止を行った.
#機器のアンマウントや再起動まではしない.
# service apache2 stop
# service bind9 stop
# service openbsd-inetd stop
# service qmail stop
# service tcpserver stop
tcpserver は立ち上がらないようにしてあったため意味はなかった.
== ログインユーザの確認
# w
== プロセスの確認
以下のコマンドでプロセスを確認する.
# ps aux
== phase 2 (tako の root ログイン許可)
=== tako の root ログイン許可
tako において, 一時的に root ログインを許可するために, /etc/ssh/sshd_config を編集して ssh を再起動した.
== phase 3 (ika から tako へ各種データをコピー)
scp コマンドで移す際には, パーミッションやグループ等の設定を変えてしまわないように注意 (オプション p の使用).
=== ika から tako へ各種設定ファイルをコピー
* ika から tako へ cron の設定ファイルをコピー
ika# rsync -av /var/spool/cron/crontabs root@tako-itpass.scitec.kobe-u.ac.jp:/var/spool/cron/
/var/spool/cron/ 以下のパーミッションと所有者, グループが ika と tako で同じであることを確認した.
#* ika から tako へ popauth の設定ファイル /usr/local/qpopper/pop.auth をコピー
#
# ika# cd /usr/local/qpopper/
# ika# cp pop.auth pop.auth.20141126
# ika# rsync -av /usr/local/qpopper/pop.auth root@tako-itpass:/usr/local/qpopper/
* tako の /etc/shadow を /etc/shadow.YYYYMMDD (YYYYMMDD は今日の日付) にバックアップした.
tako# cd /etc
tako# cp shadow shadow.20171205
* ssh, diff コマンドを組み合わせて ika と tako の /etc/shadow を比較する.
ika# ssh root@tako-itpass.scitec.kobe-u.ac.jp cat /etc/shadow | diff - /etc/shadow
* 上記の出力の結果
tako 側の /etc/shadow に書かれていない UID のうち 1000 ~ 29999 までのものがないことを確認した.
== phase 4 (root ログイン禁止)
=== tako の root ログイン禁止
* /home 領域の rsync が終わっていることを確認した.
* tako に対するログインを禁止した状態に戻した.
== phase 6 (tako, ika の交換: ネットワークの再起動)
=== ネットワークの再起動
#((*混乱を避けるため, ika, tako 両方ともに以下の作業を行う
#ユーザ以外は全員ログアウトし,
#ネットワークの再起動が完了するまでログインは控えたほうがよい.*))
ネットワークを再起動した.
# /etc/init.d/networking restart
この作業後, tako (または ika) に接続できなくなった場合は,
該当サーバを再起動し,
phase 1 を参考に全サービスを一時停止しておく.
== phase 8 (OS 再起動)
OS を再起動してもサービスが期待通り立ち上がる (立ち上がらない)
ことを確認するため, ika の OS を再起動した.
# reboot
#再起動が終わったホストから, phase 9 に進んで良い.
== 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.
ssh の鍵が古く, ika へのログインに失敗したため, 鍵を作り
直して実行し, 問題なく動作した.
{{toc_here}}
= 当日作業
#== 概要
#
#大まかな作業内容は以下の通りである.
#
#* 前半 (root パスワード保持者が中心になって行う)
# * プロセスやサービスの停止
# * 一時的に root ログインを許可して, 必要なファイルを転送
#* 後半 (全員で行う)
# * ホスト名・IP アドレスの交換後, ネットワーク再起動
# * 各種サービスの設定変更後, OS 再起動
# * サービスなどの動作確認
#
#特に記述がない限り, ひとつの phase 内の全作業が
#完了してから次の phase に進むようにすること.
#また同一 phase 内に複数項目
#(Hiki ソースでの "===" の項目)
#がある場合は複数人で同時に行ってもよい.
#
#== phase 0 (準備)
#
#* サーバ交換中は Hiki 上のマニュアルを参照できなくなるため,
# 作業者は予めサーバ交換マニュアルを手元に保存しておく.
# * サーバ交換マニュアルから引用されているページについても忘れないように.
# * Hiki ページの印刷は推奨されない. 長いコマンドなどが切れてしまうため.
#
== phase 1 (入替え開始)
#ここでは並行できる作業が少ないため.
#一部の作業メンバーでスタートする.
#((*作業メンバーには, tako, ika の root パスワードを
#持っている人を含めるようにする*))
#(ika の root パスワード保持者は念のため).
=== tako のログインユーザの削除, プロセスの削除, サービスの停止
#((<[ITPASS2016]サーバ再起動手順>)) を参考に,
tako のログインユーザの削除, プロセスの削除, サービスの停止を行った.
#機器のアンマウントや再起動まではしない.
# service apache2 stop
# service bind9 stop
# service openbsd-inetd stop
# service qmail stop
# service tcpserver stop
tcpserver は立ち上がらないようにしてあったため意味はなかった.
== ログインユーザの確認
# w
== プロセスの確認
以下のコマンドでプロセスを確認する.
# ps aux
== phase 2 (tako の root ログイン許可)
=== tako の root ログイン許可
tako において, 一時的に root ログインを許可するために, /etc/ssh/sshd_config を編集して ssh を再起動した.
== phase 3 (ika から tako へ各種データをコピー)
scp コマンドで移す際には, パーミッションやグループ等の設定を変えてしまわないように注意 (オプション p の使用).
=== ika から tako へ各種設定ファイルをコピー
* ika から tako へ cron の設定ファイルをコピー
ika# rsync -av /var/spool/cron/crontabs root@tako-itpass.scitec.kobe-u.ac.jp:/var/spool/cron/
/var/spool/cron/ 以下のパーミッションと所有者, グループが ika と tako で同じであることを確認した.
#* ika から tako へ popauth の設定ファイル /usr/local/qpopper/pop.auth をコピー
#
# ika# cd /usr/local/qpopper/
# ika# cp pop.auth pop.auth.20141126
# ika# rsync -av /usr/local/qpopper/pop.auth root@tako-itpass:/usr/local/qpopper/
* tako の /etc/shadow を /etc/shadow.YYYYMMDD (YYYYMMDD は今日の日付) にバックアップした.
tako# cd /etc
tako# cp shadow shadow.20171205
* ssh, diff コマンドを組み合わせて ika と tako の /etc/shadow を比較する.
ika# ssh root@tako-itpass.scitec.kobe-u.ac.jp cat /etc/shadow | diff - /etc/shadow
* 上記の出力の結果
tako 側の /etc/shadow に書かれていない UID のうち 1000 ~ 29999 までのものがないことを確認した.
== phase 4 (root ログイン禁止)
=== tako の root ログイン禁止
* /home 領域の rsync が終わっていることを確認した.
* tako に対するログインを禁止した状態に戻した.
== phase 6 (tako, ika の交換: ネットワークの再起動)
=== ネットワークの再起動
#((*混乱を避けるため, ika, tako 両方ともに以下の作業を行う
#ユーザ以外は全員ログアウトし,
#ネットワークの再起動が完了するまでログインは控えたほうがよい.*))
ネットワークを再起動した.
# /etc/init.d/networking restart
この作業後, tako (または ika) に接続できなくなった場合は,
該当サーバを再起動し,
phase 1 を参考に全サービスを一時停止しておく.
== phase 8 (OS 再起動)
OS を再起動してもサービスが期待通り立ち上がる (立ち上がらない)
ことを確認するため, ika の OS を再起動した.
# reboot
#再起動が終わったホストから, phase 9 に進んで良い.
== 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.
ssh の鍵が古く, ika へのログインに失敗したため, 鍵を作り
直して実行し, 問題なく動作した.