IT pass HikiWiki - [Memo2009][ITPASS] サーバ交換作業(村上(健), 古家, 井谷) Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
= 前日作業
== home 領域を ika-itpass から tako-itpass へ転送
* 当日にも同様の作業を行うが, その際の時間を短縮するために行う.
=== 公開鍵認証の際のセキュリティ設定の変更 (通信許可)
まず, ika から tako への移行作業では tako 側の ika に対する通信許可の設定を行う.
最近の OpenSSH では, デフォルトでは root のログインを許可しないため,
設定を変更する. /etc/ssh/sshd_config の
PermitRootLogin no
という部分を
PermitRootLogin yes
に変更.
さらに, 任意のコマンドを実行出来るように,
PermitRootLogin forced-commands-only
という部分をコメントアウトした.
#PermitRootLogin forced-commands-only
その後,
tako# /etc/init.d/ssh restart
として設定を反映すること. これにより, root のログインを許可することとなる.
=== rsync で転送されるファイルの確認
/root/.ssh/ の秘密鍵でログインするため, まず以下の作業を行う.
ika$ sudo -s -H
ika# cd /root
いきなり rsync コマンドを実行すると予期せぬ間違い (転送元と転送先の設
定を間違って, 転送先のファイルを全て消してしまう, など) が起こりうるた
め, まずは rsync コマンドに -n オプションをつけて実行する. -n オプショ
ンをつけて実行すると, 実際のファイルの転送は行わずに, 転送されるはずの
ファイルのリストが出力される.
ここでは一度ファイルリストを /tmp ディレクトリ以下に出力し, 確認してから
実際の転送を行うこととする.
root@ika:~# rsync -n -av --delete -e ssh --exclude chikuwa* -x --exclude=aquota.user --exclude=gate.bk --exclude=satoki.bk /home/ tako-itpass.scitec.kobe-u.ac.jp:/home/ 2>&1 | tee /tmp/rsync_ika2tako.log
rsync に関するオプション (-av, --delete, -e 等) については, ((<rsync(1)|URL:http://www.infoscience.co.jp/technical/rsync/rsync.html>))
等を参照のこと. また, "/home" と "/home/" では転送内容が異なるため
注意せよ.
ここでは, tako のみに存在する tako 構築用に作成した ユーザーの公開鍵などが, rsync をしても消えないように, --exclude=chikuwa* というオプションを加える.
また, 外部記憶装置にあるファイルが転送されることのないように -x というオプションを加える.
さらに, aquota.user というファイルは転送しようとするとエラーが表示されるが, ika にもすでに存在するので, 除外するために --exclude=aquota.user というオプションも加えた.
また, tako 上の gate/ を gate.bk/ に変更し, --exclude=gate.bk という
オプションを加えた.
上記コマンドの動作が終了したら, /tmp/rsync_ika2tako.log を見て, 転送される予定のファイルを確認.
=== rsync でファイルの転送
((<URL:#rsync で転送されるファイルの確認>)) で確認したコマンドから -n
オプションを除いたコマンドを実行する.
実行後, tako 内の /home 以下にファイルが転送されていることを確認すること.
= 入替え当日作業
== phase 0
== 管理者グループ名の変更
=== グループ名の変更
新しい管理者グループ名 (itpadmin) に変更する.
# groupmod -n itpadmin epaadmin
書式は
# groupmod -n (新しい名前) (古い名前)
=== /etc/shadow 編集
* epaadmin --> itpadmin へ変更
=== gate のユーザデータベースの編集
* /home/gate/userdb/stable/epaadmin を epaadmin.bk としてコピー.
* ファイル名を epaadmin から itpadmin へ変更.
* itpadmin ファイル内の "EPA" という記述を全て "ITPASS" に変更.
* loginname は小文字で itpadmin とした.
=== システムへ反映する
# perl /use/local/gate/lib/gate-daily
=== 確認
* itpasmin が gate に登録されているかどうか確認した.
# gate-user-show itpadmin
旧管理者グループ が gate に登録されていないことを確認した.
# gate-user-show epaadmin
さらに,
# gate-user-show epaadmin.bk
としたところ, 誤って epaadmin.bk というグループが作成されてしまっていたことが判明したため, 先ほど作った epaadmin.bk ファイルを /home/gate/ へ移動した.
* root になれるか確認
epaadmin グループに所属していたユーザが root になれるか確認.
--> なれなかった.
* /etc/gate/ 内にあるファイルの編集
* gate-user.conf 内の「$WHEELUSER」に itpadmin を指定.
* gate.conf 内の "epaadmin" という記述を "itpadmin" に変更.
* システムへ反映する
# perl /use/local/gate/lib/gate-daily
--> root になれるようになった.
== new (tako) の DNS キャッシュの TTL を変更.
TTL を 5 分 (300 秒) にした. (入替え作業時間よりも十分に短い時間に)
* localhost.rev, localhost.zone のファイルの最初のほうにある
$TTL 3600
を
$TTL 300
に変更した.
* 各ファイルの serial を 2009102301 に更新した.
== phase 1 (入替え開始)
サービス停止前の下準備
* new (tako) の DNS 設定 /etc/resolv.conf が以下のようになっていることを確認した.
nameserver 133.30.14.2
nameserver 133.30.14.3
nameserver 133.30.8.2
search scitec.kobe-u.ac.jp
nameserver としては, 神戸大・学術基盤センターの DNS サーバを指定している.
old (ika) は今後 DNS サーバとして使用しないため, 編集しなかった.
* DNS
* サービス停止作業
* new (tako) の bind はまだ起動していないため, 特に作業していない.
== phase 2
=== old (ika) から new (tako) へ各種データをコピー
* /home ディレクトリを rsync
* 作業については ((<URL:#home 領域を old から new へ転送>)) を参照した.
* 作業後に, old (ika) ⇒ new (tako) への転送を許可しないよう設定を戻した,
* /etc/ssh/sshd_config
* PermitRootLogin を no に戻した.
* "PermitRootLogin forced-commands-only" の行をコメントアウトした
* old (ika) のauthorized_keys を編集
* old(ika)-itpass の公開鍵の行の冒頭に以下を加えた.
command="rsync --server -vlogDtpr --delete . /home/",no-pty,
from="*.scitec.kobe-u.ac.jp",no-port-forwarding,
no-X11-forwarding,no-agent-forwarding
* ファイル名を authorized_keys.bk に変更し, root ログインを完全に拒否するようにした.
=== ホスト名と IP アドレスの変更
old (ika) と new (tako) のホスト名と IP アドレスを入れ替えた.
==== ホスト名の変更
* /etc/hostname を ika(tako)-itpass に変更
* /etc/hosts 内の ika(tako) を ika(tako)-itpass に変更
* /etc/mailname を ika(tako)-itpass.scitec.kobe-u.ac.jp に変更
* /etc/gate/gate.conf 内のホスト名を ika(tako)-itpass.scitec.kobe-u.ac.jp に変更
* /etc/exim4/update-exim4.conf.conf の dc_other_hostnames を ika(tako)-itpass.scitec.kobe-u.ac.jp に変更
* ホスト名の変更を一時保留しているファイル
* old (ika)
* /etc/cron.local/daily/
* 230_rsync_epabk
* 240_rsync_cps
* new (tako)
* /etc/ssh/ssh_host_dsa_key.pub
* /etc/ssh/ssh_host_rsa_key.pub
grep ika (または tako) /etc/* として古い名前が残っていないか検索しながら作業した.
==== IP アドレスの変更
/etc/hosts と /etc/network/interfaces ないの IP アドレスを入れ替えた.
設定後
old --> 133.30.109.21
new --> 133.30.109.22
==== ネットワークの再起動
設定の変更後, ネットワークを再起動した.
# /etc/init.d/networking restart
== phase 3
* bind
* これまでのファイルをバックアップ.
new$ cd /usr/local/bind/etc
new$ cp -r namedb namedb-20091023
* サーバ起動時に bind が立ち上がるよう, 起動スクリプトを変更した.
# update-rc.d bind defaults
* サーバ交換作業が終わってから, reboot して bind が起動することを確認した.
== phase 4
移行の最終チェック
* old と new でそれぞれ問い合わせに応じるか, 正しいデータを返すかをチェックした.
$ dig itpass.scitec.kobe-u.ac.jp
--> 133.30.109.22を返したので OK
$ dig tako-itpass.scitec.kobe-u.ac.jp
--> 133.30.109.21を返したので OK
$ dig ika-itpass.scitec.kobe-u.ac.jp
--> 133.30.109.22を返したので OK
= 後日行った作業
* 運用開始 1 週間後をめどに
* namedb のバックアップファイルを削除した.
* old から参考のためコピーした DNS の設定ファイルを削除した.
* locahost.zone, localhost.rev 内のホスト名が tako-itpass のままだったため, ika-itpass に書き換えた.
* chikuwa* ユーザの削除
userdel -r [アカウント名]
で, ホームディレクトリも一緒に削除した.
* visudo から chikuwa* を削除.
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
= 前日作業
== home 領域を ika-itpass から tako-itpass へ転送
* 当日にも同様の作業を行うが, その際の時間を短縮するために行う.
=== 公開鍵認証の際のセキュリティ設定の変更 (通信許可)
まず, ika から tako への移行作業では tako 側の ika に対する通信許可の設定を行う.
最近の OpenSSH では, デフォルトでは root のログインを許可しないため,
設定を変更する. /etc/ssh/sshd_config の
PermitRootLogin no
という部分を
PermitRootLogin yes
に変更.
さらに, 任意のコマンドを実行出来るように,
PermitRootLogin forced-commands-only
という部分をコメントアウトした.
#PermitRootLogin forced-commands-only
その後,
tako# /etc/init.d/ssh restart
として設定を反映すること. これにより, root のログインを許可することとなる.
=== rsync で転送されるファイルの確認
/root/.ssh/ の秘密鍵でログインするため, まず以下の作業を行う.
ika$ sudo -s -H
ika# cd /root
いきなり rsync コマンドを実行すると予期せぬ間違い (転送元と転送先の設
定を間違って, 転送先のファイルを全て消してしまう, など) が起こりうるた
め, まずは rsync コマンドに -n オプションをつけて実行する. -n オプショ
ンをつけて実行すると, 実際のファイルの転送は行わずに, 転送されるはずの
ファイルのリストが出力される.
ここでは一度ファイルリストを /tmp ディレクトリ以下に出力し, 確認してから
実際の転送を行うこととする.
root@ika:~# rsync -n -av --delete -e ssh --exclude chikuwa* -x --exclude=aquota.user --exclude=gate.bk --exclude=satoki.bk /home/ tako-itpass.scitec.kobe-u.ac.jp:/home/ 2>&1 | tee /tmp/rsync_ika2tako.log
rsync に関するオプション (-av, --delete, -e 等) については, ((<rsync(1)|URL:http://www.infoscience.co.jp/technical/rsync/rsync.html>))
等を参照のこと. また, "/home" と "/home/" では転送内容が異なるため
注意せよ.
ここでは, tako のみに存在する tako 構築用に作成した ユーザーの公開鍵などが, rsync をしても消えないように, --exclude=chikuwa* というオプションを加える.
また, 外部記憶装置にあるファイルが転送されることのないように -x というオプションを加える.
さらに, aquota.user というファイルは転送しようとするとエラーが表示されるが, ika にもすでに存在するので, 除外するために --exclude=aquota.user というオプションも加えた.
また, tako 上の gate/ を gate.bk/ に変更し, --exclude=gate.bk という
オプションを加えた.
上記コマンドの動作が終了したら, /tmp/rsync_ika2tako.log を見て, 転送される予定のファイルを確認.
=== rsync でファイルの転送
((<URL:#rsync で転送されるファイルの確認>)) で確認したコマンドから -n
オプションを除いたコマンドを実行する.
実行後, tako 内の /home 以下にファイルが転送されていることを確認すること.
= 入替え当日作業
== phase 0
== 管理者グループ名の変更
=== グループ名の変更
新しい管理者グループ名 (itpadmin) に変更する.
# groupmod -n itpadmin epaadmin
書式は
# groupmod -n (新しい名前) (古い名前)
=== /etc/shadow 編集
* epaadmin --> itpadmin へ変更
=== gate のユーザデータベースの編集
* /home/gate/userdb/stable/epaadmin を epaadmin.bk としてコピー.
* ファイル名を epaadmin から itpadmin へ変更.
* itpadmin ファイル内の "EPA" という記述を全て "ITPASS" に変更.
* loginname は小文字で itpadmin とした.
=== システムへ反映する
# perl /use/local/gate/lib/gate-daily
=== 確認
* itpasmin が gate に登録されているかどうか確認した.
# gate-user-show itpadmin
旧管理者グループ が gate に登録されていないことを確認した.
# gate-user-show epaadmin
さらに,
# gate-user-show epaadmin.bk
としたところ, 誤って epaadmin.bk というグループが作成されてしまっていたことが判明したため, 先ほど作った epaadmin.bk ファイルを /home/gate/ へ移動した.
* root になれるか確認
epaadmin グループに所属していたユーザが root になれるか確認.
--> なれなかった.
* /etc/gate/ 内にあるファイルの編集
* gate-user.conf 内の「$WHEELUSER」に itpadmin を指定.
* gate.conf 内の "epaadmin" という記述を "itpadmin" に変更.
* システムへ反映する
# perl /use/local/gate/lib/gate-daily
--> root になれるようになった.
== new (tako) の DNS キャッシュの TTL を変更.
TTL を 5 分 (300 秒) にした. (入替え作業時間よりも十分に短い時間に)
* localhost.rev, localhost.zone のファイルの最初のほうにある
$TTL 3600
を
$TTL 300
に変更した.
* 各ファイルの serial を 2009102301 に更新した.
== phase 1 (入替え開始)
サービス停止前の下準備
* new (tako) の DNS 設定 /etc/resolv.conf が以下のようになっていることを確認した.
nameserver 133.30.14.2
nameserver 133.30.14.3
nameserver 133.30.8.2
search scitec.kobe-u.ac.jp
nameserver としては, 神戸大・学術基盤センターの DNS サーバを指定している.
old (ika) は今後 DNS サーバとして使用しないため, 編集しなかった.
* DNS
* サービス停止作業
* new (tako) の bind はまだ起動していないため, 特に作業していない.
== phase 2
=== old (ika) から new (tako) へ各種データをコピー
* /home ディレクトリを rsync
* 作業については ((<URL:#home 領域を old から new へ転送>)) を参照した.
* 作業後に, old (ika) ⇒ new (tako) への転送を許可しないよう設定を戻した,
* /etc/ssh/sshd_config
* PermitRootLogin を no に戻した.
* "PermitRootLogin forced-commands-only" の行をコメントアウトした
* old (ika) のauthorized_keys を編集
* old(ika)-itpass の公開鍵の行の冒頭に以下を加えた.
command="rsync --server -vlogDtpr --delete . /home/",no-pty,
from="*.scitec.kobe-u.ac.jp",no-port-forwarding,
no-X11-forwarding,no-agent-forwarding
* ファイル名を authorized_keys.bk に変更し, root ログインを完全に拒否するようにした.
=== ホスト名と IP アドレスの変更
old (ika) と new (tako) のホスト名と IP アドレスを入れ替えた.
==== ホスト名の変更
* /etc/hostname を ika(tako)-itpass に変更
* /etc/hosts 内の ika(tako) を ika(tako)-itpass に変更
* /etc/mailname を ika(tako)-itpass.scitec.kobe-u.ac.jp に変更
* /etc/gate/gate.conf 内のホスト名を ika(tako)-itpass.scitec.kobe-u.ac.jp に変更
* /etc/exim4/update-exim4.conf.conf の dc_other_hostnames を ika(tako)-itpass.scitec.kobe-u.ac.jp に変更
* ホスト名の変更を一時保留しているファイル
* old (ika)
* /etc/cron.local/daily/
* 230_rsync_epabk
* 240_rsync_cps
* new (tako)
* /etc/ssh/ssh_host_dsa_key.pub
* /etc/ssh/ssh_host_rsa_key.pub
grep ika (または tako) /etc/* として古い名前が残っていないか検索しながら作業した.
==== IP アドレスの変更
/etc/hosts と /etc/network/interfaces ないの IP アドレスを入れ替えた.
設定後
old --> 133.30.109.21
new --> 133.30.109.22
==== ネットワークの再起動
設定の変更後, ネットワークを再起動した.
# /etc/init.d/networking restart
== phase 3
* bind
* これまでのファイルをバックアップ.
new$ cd /usr/local/bind/etc
new$ cp -r namedb namedb-20091023
* サーバ起動時に bind が立ち上がるよう, 起動スクリプトを変更した.
# update-rc.d bind defaults
* サーバ交換作業が終わってから, reboot して bind が起動することを確認した.
== phase 4
移行の最終チェック
* old と new でそれぞれ問い合わせに応じるか, 正しいデータを返すかをチェックした.
$ dig itpass.scitec.kobe-u.ac.jp
--> 133.30.109.22を返したので OK
$ dig tako-itpass.scitec.kobe-u.ac.jp
--> 133.30.109.21を返したので OK
$ dig ika-itpass.scitec.kobe-u.ac.jp
--> 133.30.109.22を返したので OK
= 後日行った作業
* 運用開始 1 週間後をめどに
* namedb のバックアップファイルを削除した.
* old から参考のためコピーした DNS の設定ファイルを削除した.
* locahost.zone, localhost.rev 内のホスト名が tako-itpass のままだったため, ika-itpass に書き換えた.
* chikuwa* ユーザの削除
userdel -r [アカウント名]
で, ホームディレクトリも一緒に削除した.
* visudo から chikuwa* を削除.
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]