IT pass HikiWiki - [Memo2018][ITPASS]サーバ交換事前作業 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc_here}}
[((<[ITPASS2018]2018年度サーバ構築ログ>)) へ戻る]
#= 2 週間前から
#== 2 日前の作業, 当日前半の作業者のスケジュール確保
#((*入れ替え 2 日前および入れ替え前半の作業には tako の root パスワードが必要になる.*))
#これらの作業のために tako の root パスワード保持者のスケジュールを必ず確保しておくこと.
#万が一のため, ika の root パスワード保持者も現場にいるようにする.
#難しい場合は root パスワード保持者の交代も検討すること.
#== サーバ停止アナウンス
#入れ替え日には ITPASS サーバの全サービスを停止することとなるため,
#その旨を伝えるアナウンスを数度行う
#(入替え日の 2 週間前から当日 30 分前まで).
= 2 日前まで
#以下の作業は滞ると当日の作業に大きく影響するため,
#念のため 1 日遅れても大丈夫なように, 2 日前までに行う.
#この作業では((*コマンドの実行に数時間以上かかる*))ので,
#十分早い時間に始めるか, 画面をロックして帰れるようにしておく.
#あるいは, screen コマンドなどを活用すること.
#((*決して他人が操作できる状態で端末を放置しないこと.*))
== ika から tako へ /home 領域を rsync
/home 以下のデータを同期する.
#サーバ交換作業当日にも同様の作業を行うが,
#その際の時間を短縮するために予め行っておく.
=== 公開鍵認証の際のセキュリティ設定の変更 (root ログイン許可)
まず tako 側の ika に対する通信許可の設定を行う.
tako において一時的に root ログインを許可した.
#方法は ((<[TEBIKI]root ログインの許可・禁止>)) を参考にする.
下のようにして, tako で root ログインを許可した.
tako の /etc/ssh/sshd_config の
PermitRootLogin no
を
PermitRootLogin yes
に変更し,
# /etc/init.d/ssh restart
で ssh を再起動した.
=== rsync で転送されるファイルの確認
/root/.ssh/ の秘密鍵でログインするため, まず以下の作業を行った.
ika$ sudo -s -H
ika# cd /root
ika で下のように管理者権限を得た.
ika$ sudo -s -H
ika# cd /root
#いきなり rsync コマンドを実行すると予期せぬ間違い (転送元と転送先の設定を間違って, 転送先のファイルを全て消してしまう等) が起こりうるため, まずは rsync コマンドに -n オプションをつけて実行する.
#-n オプションをつけて実行すると, 実際のファイルの転送は行わずに, 転送されるはずのファイルのリストが出力される.
#* rsync する際, gate の home 領域や,
# aquota.user ファイルまで tako に同期してしまわないよう
# オプション --exclude で除外する.
#* 外部記憶装置にあるファイルが転送されることのないように
# -x というオプションを加える.
#* ここでは一度ファイルリストを /tmp ディレクトリ以下に出力し,
# 確認してから実際の転送を行うこととする.
#このコマンドはサーバ交換の際にも実行するので,
#当日コマンドを打ち直す手間が省けるように
#シェルスクリプトとして作成しておく.
#名前は動作内容を想像しやすいものなら何でも良いが,
#ここでは rsync_ika2tako.sh としておく.
ika から tako へのデータの転送のために, 下の内容の rsync を実行するスクリプト /root/rsync_ika2tako.sh を作成した.
#!/bin/sh
rsync -n -av --delete -e ssh -x \
--exclude="chikuwa?" \
--exclude=gate \
--exclude=aquota.user --exclude=quota.user \
/home/ tako-itpass.scitec.kobe-u.ac.jp:/home/ \
2>&1 | tee /tmp/rsync_tako12ika.log
#このスクリプトでは, gate の領域や quota 関連のファイルを除き, ika の /home 以下を tako に転送する.
#行末の日本円マークはバックスラッシュのことである/バックスラッシュに読み替えること.
#((*スペースを入れる位置に注意すること.*))
#なお, rsync に関するオプション (-av, --delete, -e 等) については,
#man の rsync(1) の項目を参照のこと.
#また, "/home" と "/home/" では転送内容が異なるため注意しなければならない.
上記スクリプトを実行した.
#tako の root パスワードが求められるので入力する.
下のようにしてスクリプトを実行した.
ika# chmod 744 rsync_ika2tako.sh
ika# ./rsync_ika2tako.sh
/tmp/rsync_tako12ika.log の内容を確認した.
動作終了後,
/tmp/rsync_ika2tako.log を見て, 転送される予定のファイルを確認した.
#もし予期しないファイルが削除, 転送されてしまう場合は,
#--exclude オプションを使用してそのファイルを転送対象から除外すること
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#という警告が出て, リストは適切に出力されない場合がある.
#これは, ika に登録されている tako の指紋が, known_hosts に書かれている指紋と一致していないために生じる.
#この場合, 警告に続くメッセージで指摘された行にある tako の指紋を削除し, 上記コマンドを実行する.
# Warning: Permanently added the RSA host key for IP address '<tako の IP アドレス>' to the list of known hosts.
#というメッセージが出て, tako の指紋が known_hostsに登録されるので, 再び上記コマンドを実行すると公開鍵認証を行うことができる.
=== rsync でファイルを転送
((<URL:#rsync で転送されるファイルの確認>)) で動作確認したスクリプトから -n オプションを除いて実行した.
#(実行時に tako の root パスワードが要求される.)
実行後, tako 内の /home 以下にファイルが転送されていることを確認した.
最後に, ((<URL:#公開鍵認証の際のセキュリティ設定の変更 (通信許可)>))で行なった設定を元に戻し, root ログインを禁止した.
念のため, ika から tako に ssh で入れないことも確認した.
=== 公開鍵認証の際のセキュリティ設定の変更 (root ログイン不許可)
下のようにして, tako の ssh での root ログインを禁止した.
tako の /etc/ssh/sshd_config の
PermitRootLogin yes
を
PermitRootLogin no
とし,
# /etc/init.d/ssh restart
で ssh を再起動した.
さらに, ika から tako に ssh で入れないことを確認した.
[((<[ITPASS2018]2018年度サーバ構築ログ>)) へ戻る]
#= 2 週間前から
#== 2 日前の作業, 当日前半の作業者のスケジュール確保
#((*入れ替え 2 日前および入れ替え前半の作業には tako の root パスワードが必要になる.*))
#これらの作業のために tako の root パスワード保持者のスケジュールを必ず確保しておくこと.
#万が一のため, ika の root パスワード保持者も現場にいるようにする.
#難しい場合は root パスワード保持者の交代も検討すること.
#== サーバ停止アナウンス
#入れ替え日には ITPASS サーバの全サービスを停止することとなるため,
#その旨を伝えるアナウンスを数度行う
#(入替え日の 2 週間前から当日 30 分前まで).
= 2 日前まで
#以下の作業は滞ると当日の作業に大きく影響するため,
#念のため 1 日遅れても大丈夫なように, 2 日前までに行う.
#この作業では((*コマンドの実行に数時間以上かかる*))ので,
#十分早い時間に始めるか, 画面をロックして帰れるようにしておく.
#あるいは, screen コマンドなどを活用すること.
#((*決して他人が操作できる状態で端末を放置しないこと.*))
== ika から tako へ /home 領域を rsync
/home 以下のデータを同期する.
#サーバ交換作業当日にも同様の作業を行うが,
#その際の時間を短縮するために予め行っておく.
=== 公開鍵認証の際のセキュリティ設定の変更 (root ログイン許可)
まず tako 側の ika に対する通信許可の設定を行う.
tako において一時的に root ログインを許可した.
#方法は ((<[TEBIKI]root ログインの許可・禁止>)) を参考にする.
下のようにして, tako で root ログインを許可した.
tako の /etc/ssh/sshd_config の
PermitRootLogin no
を
PermitRootLogin yes
に変更し,
# /etc/init.d/ssh restart
で ssh を再起動した.
=== rsync で転送されるファイルの確認
/root/.ssh/ の秘密鍵でログインするため, まず以下の作業を行った.
ika$ sudo -s -H
ika# cd /root
ika で下のように管理者権限を得た.
ika$ sudo -s -H
ika# cd /root
#いきなり rsync コマンドを実行すると予期せぬ間違い (転送元と転送先の設定を間違って, 転送先のファイルを全て消してしまう等) が起こりうるため, まずは rsync コマンドに -n オプションをつけて実行する.
#-n オプションをつけて実行すると, 実際のファイルの転送は行わずに, 転送されるはずのファイルのリストが出力される.
#* rsync する際, gate の home 領域や,
# aquota.user ファイルまで tako に同期してしまわないよう
# オプション --exclude で除外する.
#* 外部記憶装置にあるファイルが転送されることのないように
# -x というオプションを加える.
#* ここでは一度ファイルリストを /tmp ディレクトリ以下に出力し,
# 確認してから実際の転送を行うこととする.
#このコマンドはサーバ交換の際にも実行するので,
#当日コマンドを打ち直す手間が省けるように
#シェルスクリプトとして作成しておく.
#名前は動作内容を想像しやすいものなら何でも良いが,
#ここでは rsync_ika2tako.sh としておく.
ika から tako へのデータの転送のために, 下の内容の rsync を実行するスクリプト /root/rsync_ika2tako.sh を作成した.
#!/bin/sh
rsync -n -av --delete -e ssh -x \
--exclude="chikuwa?" \
--exclude=gate \
--exclude=aquota.user --exclude=quota.user \
/home/ tako-itpass.scitec.kobe-u.ac.jp:/home/ \
2>&1 | tee /tmp/rsync_tako12ika.log
#このスクリプトでは, gate の領域や quota 関連のファイルを除き, ika の /home 以下を tako に転送する.
#行末の日本円マークはバックスラッシュのことである/バックスラッシュに読み替えること.
#((*スペースを入れる位置に注意すること.*))
#なお, rsync に関するオプション (-av, --delete, -e 等) については,
#man の rsync(1) の項目を参照のこと.
#また, "/home" と "/home/" では転送内容が異なるため注意しなければならない.
上記スクリプトを実行した.
#tako の root パスワードが求められるので入力する.
下のようにしてスクリプトを実行した.
ika# chmod 744 rsync_ika2tako.sh
ika# ./rsync_ika2tako.sh
/tmp/rsync_tako12ika.log の内容を確認した.
動作終了後,
/tmp/rsync_ika2tako.log を見て, 転送される予定のファイルを確認した.
#もし予期しないファイルが削除, 転送されてしまう場合は,
#--exclude オプションを使用してそのファイルを転送対象から除外すること
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#という警告が出て, リストは適切に出力されない場合がある.
#これは, ika に登録されている tako の指紋が, known_hosts に書かれている指紋と一致していないために生じる.
#この場合, 警告に続くメッセージで指摘された行にある tako の指紋を削除し, 上記コマンドを実行する.
# Warning: Permanently added the RSA host key for IP address '<tako の IP アドレス>' to the list of known hosts.
#というメッセージが出て, tako の指紋が known_hostsに登録されるので, 再び上記コマンドを実行すると公開鍵認証を行うことができる.
=== rsync でファイルを転送
((<URL:#rsync で転送されるファイルの確認>)) で動作確認したスクリプトから -n オプションを除いて実行した.
#(実行時に tako の root パスワードが要求される.)
実行後, tako 内の /home 以下にファイルが転送されていることを確認した.
最後に, ((<URL:#公開鍵認証の際のセキュリティ設定の変更 (通信許可)>))で行なった設定を元に戻し, root ログインを禁止した.
念のため, ika から tako に ssh で入れないことも確認した.
=== 公開鍵認証の際のセキュリティ設定の変更 (root ログイン不許可)
下のようにして, tako の ssh での root ログインを禁止した.
tako の /etc/ssh/sshd_config の
PermitRootLogin yes
を
PermitRootLogin no
とし,
# /etc/init.d/ssh restart
で ssh を再起動した.
さらに, ika から tako に ssh で入れないことを確認した.