[Memo2016][ITPASS]サーバ交換作業 (ika)
当日作業
phase 0 (準備)
- サーバ交換中は Hiki 上のマニュアルを参照できなくなるため,
作業者は以下の点を注意しつつ予めサーバ交換マニュアルを手元に保存した.
- サーバ交換マニュアルから引用されているページについても忘れないように.
- Hiki ページの印刷は推奨されない. 長いコマンドなどが切れてしまうため.
phase 1 (入替え開始)
ika, tako のログインユーザの削除, プロセスの削除, サービスの停止
[ITPASS2014]サーバ再起動手順 を参考に, ika, tako のログインユーザの削除, プロセスの削除, サービスの停止を行った. 機器のアンマウントや再起動まではしなかった.
# service apache2 stop # service bind9 stop # service openbsd-inetd stop # service qmail stop # service tcpserver stop
ログインユーザの確認
# w
その他のログインユーザはいなかった.
プロセスの確認
以下のコマンドでプロセスを確認する.
# ps aux
ログインユーザの確認の時と同じ状況であった.
ika の永続的なサービス停止
[ITPASS2014]サービスの開始・停止 を参考に, 以下のサービスを永続的に停止する
- apache2
- openbsd-inetd
サービスの停止自体は上で止めているので, それ以降の作業をした.
# systemdctl disable apache2.service # insserv -rf openbsd-inetd # chmod 644 /etc/init.d/openbsd-inetd
apache2 については, /etc/init.d/apache2 がなかったので
systemctl disable apache2.service
を実行したところ,
Removed symlink /etc/systemd/system/multi-user.target.wants/apache2.service.
と表示された. シンボリックリンクを削除しているので問題ないと思われる.
bind については, 予備サーバになってもサービス提供を続けるので残しておいた.
qmail, tcpserver については, 入れ替え後も システムログメールを送れるようにするため残しておいた.
phase 2 (tako の root ログイン許可)
tako の root ログイン許可
特に作業はなかった.
phase 3 (ika から tako へ各種データをコピー)
ika から tako へ /home 領域を rsync
前回 rsync を行ってから変更があった分のために再度 rsync を行った. 前回 シェルスクリプトを作っていたので, それを実行した.
% sudo -s -H # cd /root # ./rsync_ika2tako.sh
ika から tako へ各種設定ファイルをコピー
特に作業はなかった.
phase 4 (root ログイン禁止)
ika の root ログイン禁止
[ITPASS2014]root ログインの許可・禁止を参考に root ログインを禁止した状態になっているか確認する. /etc/ssh/sshd_config を見て,
PermitRootLogin no
となっていることを確認した. 一応 ssh を再起動した.
# service ssh restart
/root/.ssh/authorized_keys のファイル名を authorized_keys.bk に変更し, root ログインを完全に拒否するようにした
# mv /root/.ssh/authorized_keys{,.bk}
tako の root ログイン禁止
特に作業はなかった.
phase 5
特に作業はなかった.
phase 6 (tako, ika の交換: ネットワークの再起動)
ネットワークの再起動
旧 ika(旧 tako)でネットワークを再起動する.
# /etc/init.d/networking restart
以下は新 ika で作業を行った.
phase 7
特に作業はなかった.
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
を実行した. しかし, ./itpass_rsync_epa2dennou.sh を実行したところ, Permission denied (publickey) とエラーが出た. そこで, ika で epalab と itpass の比較を行ったところ, ホームディレクトリのパーミッションが epalab では 755, itpass では 775 となっていたので, どちらも 755 に変更した. 再度上記コマンドを実行したところエラーは出なかった. その後, 出力されたログを確認した.
$ cd ./itpass_rsync_epa2dennnou_log $ less itpass_rsync_epa2dennnou.log $ cd ../epalab_rsync_epa2dennnou_log $ less ./epalab_rsync_epa2dennnou.log
2 つとも正常に出力されていた.
Keyword(s):
References:[[ITPASS2016]2016年度サーバ構築ログ]