IT pass HikiWiki - [Memo2009][ITPASS] サーバ交換作業(清水, 黒田) Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
= 概要
ITPASS サーバでは,
毎年 9-10 月に管理・運営技術と後継者育成を目的として,
サーバの再構築を行っている.
ITPASS サーバは本サーバと予備サーバの 2 台体制で運用しており,
以下の手順で再構築を行うこととなる.
なお, 入替え前のサーバと入替え後のサーバのホスト名は
それぞれ tako-itpass, ika-itpass である.
(1) tako-itpass に OS とサーバソフトウェアのインストール
(期間: 1 週間〜 1ヶ月)
(2) 下記の入れ替え日には ITPASS サーバを停止することとなるため,
停止アナウンスを数度行う (入替え日の 2 週間前から当日 30 分前まで).
(3) ika-itpass と tako-itpass の入替え (期間: 半日〜 1 日)
== phase 0 (入替え前)
入れ替えを開始する (サービスを停止する) 30 分前には告知.
== phase 1 (入替え開始)
old のサービスを停止する.
* qmail, tcpserver (smtp), inetd (pop3)
* サービス停止作業
* qmail, tcserver, openbsd-inetd に関して,
以下のコマンドで, サービスを一時的に停止する.
ただし, 再起動すると再びこれらのサービスも起動してしまうため,
作業途中で再起動の必要性が出てしまった場合は注意.
永続的にサービスを停止する作業は phase 3 で行う.
# /etc/init.d/qmail stop
# /etc/init.d/tcpserver stop
# /etc/init.d/openbsd-inetd stop
== phase 2
ika-itpass から new へ各種データをコピー
* ika-itpass の /usr/local/qpopper/pop.auth を new へコピー
ika-itpass$ cd /usr/local/qpopper/
ika-itpass$ sudo cp pop.auth ~/
ika-itpass$ sudo chown mikity:mikity pop.auth
ika-itpass$ sudo scp pop.auth tako-itpass:
ika-itpass$ slogin tako-itpass
tako-itpass$ cd /usr/local/qpopper
tako-itpass$ sudo mv pop.auth pop.auth~
tako-itpass$ sudo mv ~/pop.auth .
tako-itpass$ sudo chown pop:mail pop.auth
tako-itpass$ ls -l
tako-itpass$ rm pop.auth~
tako-itpass$ exit
ika-itpass$ rm pop.auth
== phase 3
ika の設定変更を行う.
* qmail の設定変更
外から来たメールを受け取らないように, and
ログメールを飛ばすのに必要な設定だけにするため,
/var/qmail/control 以下の locals, rcpthosts を以下のように
変更する. 移行が終わったら起動する.
変更前
localhost
ika-itpass.scitec.kobe-u.ac.jp
itpass.scitec.kobe-u.ac.jp
aoe.scitec.kobe-u.ac.jp
cps.scitec.kobe-u.ac.jp
変更後
localhost
tako の設定変更する.
* qmail の設定変更
/var/qmail/control 以下の locals, rcpthosts が以下のように
変更されているかチェックする. されていない場合は以下のように編集する.
localhost
ika-itpass.scitec.kobe-u.ac.jp
itpass.scitec.kobe-u.ac.jp
aoe.scitec.kobe-u.ac.jp
cps.scitec.kobe-u.ac.jp
qmail-showctl(8) で設定を確認.
* qmail の再起動
/etc/init.d/qmail restart
* 公開鍵認証の際のセキュリティ設定を変更する (通信制限)
tako 側の ika に対する通信制限の設定を行う.
先ほど, ika から tako に rsync でファイルを転送するために, root のログインを許可したので, 設定を変更して元に戻す.
/etc/ssh/sshd_config の
PermitRootLogin yes
という部分を
PermitRootLogin no
に変更したのち,
ika-itpass# /etc/init.d/ssh restart
として設定を反映することにより元に戻る.
この時点で, ika-itpass と tako-itpass が入れ換わった.
これまで tako-itpass として扱っていたサーバ機は ika-itpass として
扱うことになった.
((<DNS 班の作業を参照|[Memo2009][ITPASS] サーバ交換作業(村上(健), 古家, 井谷)#phase 3>))
== prefix.pl の修正
10/22 (木) 時点で prefix.pl の編集が適当でなかったことが phase 3 の作業中に分かったため, ika prefix.pl を tako の /usr/local/lib の prefix.pl と差し替えた.
== phase 3 (続き)
* ((<[EPA2008]サーバと予備サーバでのバックアップの設定>))の作業を行う
* 概要
ITPASS サーバにはバックアップとサーバ本体のトラブル時に代替するための
予備サーバを立ててある. /home 以下のいくつかの領域に関して,
ITPASS サーバ本体から予備サーバへ定期的にバックアップを取る.
* バックアップする領域
バックアップを取る領域は, 原則的にグループで管理する資源や,
システムにとって必要な資源である.
* 2009/10/23 現在, 以下の領域をバックアップの対象とする.
* aoelab cps epalab itpass pschool gate
* バックアップの際の認証方式
バックアップには rsync を用いる.
root アカウントでバックアップを行うが,
セキュリティを高めるため, その認証には SSH + 公開鍵暗号を用いる.
* 準備
以降では, 新しく運用する EPA サーバのホスト名を itpass,
予備サーバを itpassbak と称する. 実際には, 使用するホストの名称に
置き換えて作業を行うこと.
まず, itpass, itpassbk ともに SSH デーモンが立ち上がっている必要があるため,
((<[EPA2008]sshのインストールと設定>)) を先に行っておくこと.
また, rsync を用いてバックアップを行うため, 以下のように rsync
パッケージをインストールせよ.
# apt-get install rsync
* インストールは既に行われていたので, 設定と rsync のパッケージがちゃんと動作することを確認する.
* tako-itpass 側の通信許可
最近の OpenSSH では, デフォルトでは root のログインを許可しないため,
設定を変更する. /etc/ssh/sshd_config の
PermitRootLogin no
という部分を
PermitRootLogin forced-commands-only
に変更したのち,
tako-itpass# /etc/init.d/ssh restart
として設定を反映すること. これにより, ((<URL:#epabk 側の鍵の設置>))
で指定したコマンドでのみログインを許可することとなる.
* ika-itpass 側でのデータ転送用スクリプトの設置
* 自作スクリプト用 cron ディレクトリ作成
自作の cron 用スクリプト置き場として, /etc/cron.local を作成する.
# mkdir /etc/cron.local
# mkdir /etc/cron.local/daily
* これも既に作成されていた.
* バックアップ用スクリプトの用意
((<rsync_epabk.sh|URL:../epa/system_backup_2008/rsync_epabk.sh>))
を参考に /etc/cron.local/daily/230_rsync_itpassbk を設置する.
(スクリプト先頭の番号は, その他のスクリプトを置いた際, どれを
優先して実行するかを決めるためのものである. 若い番号のものほど
先に実行される).
* ちなみにこの辺りからは ika-itpass で行う作業なので, 間違って
tako-itpass で作業を行っている人はスクリプトの設置の頭まで
戻るように
以下のように /etc/cron.local/daily/230_rsync_itpassbk に実行権限を
設定する.
# chmod 755 /etc/cron.local/daily/230_rsync_itpassbk
* バックアップ用スクリプトの編集
ika-itpass および tako-itpass のホスト名やバックアップする領域に応じて,
230_rsync_itpassbk を編集する. 主に編集するのは以下の項目である.
: SHARED_HOST
バックアップを行う 2 つのホスト (本文書での ika-itpass および tako-itpass)
のドメイン名 (ホスト名 + ドメイン名) をスペースで区切って
記述する. 送信元と送信先で順序を変える必要は無い.
このスクリプトではスクリプトを起動するホストが必ず
転送元で, もう一方が転送先になるようになっている.
* 入手した時点で書かれていると思うが, 確認しておく.
"ika-itpass.scitec.kobe-u.ac.jp tako-itpass.scitec.kobe-u.ac.jp"
とあればOK. 上記のように順番はどちらでもよい.
: BKSUBDIRS
転送する領域を記述する. これは ((<URL:#バックアップする領域>))
に応じて書き換えること.
なお, "hoge/" 等と最後にスラッシュをいれると転送がうまく
いかなくなるので注意すること.
* BKSUBDIRS="aoelab cps epalab itpass pschool gate" と
なっていればよい
* crontab の編集
/etc/crontab を編集する. 以下の一行を追加する.
25 6 * * * root cd / && run-parts --report /etc/cron.local/daily
出力結果に関してメールを送信したい場合には以下のようにすると良い.
25 6 * * * root cd / && run-parts --report /etc/cron.local/daily |mail -s "`hostname -f` daily run outputs" xxx@xxx.xxxx
* これも Mail 構築のときに編集済み. 確認したときにアドレスが
"itpadmin_at_itpass.scitec.kobe-u.ac.jp" となっていればよい.
* バックアップログファイルの作成
ログファイルのためのディレクトリとファイルを作成しておく.
なお, このログファイルの場所は ((<URL:#バックアップ用スクリプトの用意>))
で用意した 230_rsync_itpassbk 内の LOGFILE を書き換えることで変更できる.
# mkdir /var/log/rsync-log
# touch /var/log/rsync-log/itpassbk.log
* touch は指定したファイルが存在しないときは, 中身が空のファイルを作成する.
touch をする前に itpassbk.log というファイルがなくても戸惑わないように.
* バックアップログファイルの logrotate の設定
rsync のログを 1 週間毎に分割する.
/etc/logrotate.d/ 以下に rsync_itpassbk という設定ファイルを作成.
# vi /etc/logrotate.d/rsync_itpassbk
以下の内容を書き込む.
/var/log/rsync-log/itpassbk.log {
weekly
create 0644 root root
rotate 12
}
* 参考資料
* ((<"佐藤裕介, 2005: rsync + cron + ssh (rsyncd を立てない編)"|URL:http://www2s.biglobe.ne.jp/~nuts/labo/inti/cron-rsync-ssh-nodaemon.html>))
* ((<"梅原大祐, 2006: rsync + cron + ssh でセキュアな自動リモートバックアップ"|URL:http://www.imc.cce.i.kyoto-u.ac.jp/~umehara/misc/comp/20061121.html>))
* ((<[Memo2008][EPA]EPA サーバ交換作業ログ(北野・須賀)>))
== phase 4
* 移行の最終チェック
* ika
* pop: メールをとってこれるか
* smtp: メールを出せるか, 受け取れるか
* mailing list: メールが配送されるか
* tako
* pop: 無効になっているか
* smtp: submit は有効にするが, 受け取らない設定になっているか
* new の smtp や Mailing list の確認は Mail の構築の際と同じような手順で
チェックする(qmail-inject で外にメールが届くか, 外からメールを送って届くか,
Mailing list にメールを送って届くか).
* pop の確認の準備
ika の利用者は自分の ika のアカウントで, .qmail の設定と Mailbox の作成
popauth コマンドを行ってパスワードを作っておく作業をする
メーラーの設定は pop サーバ, smtp サーバはどちらも itpass.scitec.kobe-u.ac.jp にする
認証形式は APOP で, 暗号化は pop も smtp も無しにする
受信のときにパスワードを要求されるので, popauth で作成したパスワードを入力する.
[((<ITPASSサーバ構築ドキュメント>))へ戻る]
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
= 概要
ITPASS サーバでは,
毎年 9-10 月に管理・運営技術と後継者育成を目的として,
サーバの再構築を行っている.
ITPASS サーバは本サーバと予備サーバの 2 台体制で運用しており,
以下の手順で再構築を行うこととなる.
なお, 入替え前のサーバと入替え後のサーバのホスト名は
それぞれ tako-itpass, ika-itpass である.
(1) tako-itpass に OS とサーバソフトウェアのインストール
(期間: 1 週間〜 1ヶ月)
(2) 下記の入れ替え日には ITPASS サーバを停止することとなるため,
停止アナウンスを数度行う (入替え日の 2 週間前から当日 30 分前まで).
(3) ika-itpass と tako-itpass の入替え (期間: 半日〜 1 日)
== phase 0 (入替え前)
入れ替えを開始する (サービスを停止する) 30 分前には告知.
== phase 1 (入替え開始)
old のサービスを停止する.
* qmail, tcpserver (smtp), inetd (pop3)
* サービス停止作業
* qmail, tcserver, openbsd-inetd に関して,
以下のコマンドで, サービスを一時的に停止する.
ただし, 再起動すると再びこれらのサービスも起動してしまうため,
作業途中で再起動の必要性が出てしまった場合は注意.
永続的にサービスを停止する作業は phase 3 で行う.
# /etc/init.d/qmail stop
# /etc/init.d/tcpserver stop
# /etc/init.d/openbsd-inetd stop
== phase 2
ika-itpass から new へ各種データをコピー
* ika-itpass の /usr/local/qpopper/pop.auth を new へコピー
ika-itpass$ cd /usr/local/qpopper/
ika-itpass$ sudo cp pop.auth ~/
ika-itpass$ sudo chown mikity:mikity pop.auth
ika-itpass$ sudo scp pop.auth tako-itpass:
ika-itpass$ slogin tako-itpass
tako-itpass$ cd /usr/local/qpopper
tako-itpass$ sudo mv pop.auth pop.auth~
tako-itpass$ sudo mv ~/pop.auth .
tako-itpass$ sudo chown pop:mail pop.auth
tako-itpass$ ls -l
tako-itpass$ rm pop.auth~
tako-itpass$ exit
ika-itpass$ rm pop.auth
== phase 3
ika の設定変更を行う.
* qmail の設定変更
外から来たメールを受け取らないように, and
ログメールを飛ばすのに必要な設定だけにするため,
/var/qmail/control 以下の locals, rcpthosts を以下のように
変更する. 移行が終わったら起動する.
変更前
localhost
ika-itpass.scitec.kobe-u.ac.jp
itpass.scitec.kobe-u.ac.jp
aoe.scitec.kobe-u.ac.jp
cps.scitec.kobe-u.ac.jp
変更後
localhost
tako の設定変更する.
* qmail の設定変更
/var/qmail/control 以下の locals, rcpthosts が以下のように
変更されているかチェックする. されていない場合は以下のように編集する.
localhost
ika-itpass.scitec.kobe-u.ac.jp
itpass.scitec.kobe-u.ac.jp
aoe.scitec.kobe-u.ac.jp
cps.scitec.kobe-u.ac.jp
qmail-showctl(8) で設定を確認.
* qmail の再起動
/etc/init.d/qmail restart
* 公開鍵認証の際のセキュリティ設定を変更する (通信制限)
tako 側の ika に対する通信制限の設定を行う.
先ほど, ika から tako に rsync でファイルを転送するために, root のログインを許可したので, 設定を変更して元に戻す.
/etc/ssh/sshd_config の
PermitRootLogin yes
という部分を
PermitRootLogin no
に変更したのち,
ika-itpass# /etc/init.d/ssh restart
として設定を反映することにより元に戻る.
この時点で, ika-itpass と tako-itpass が入れ換わった.
これまで tako-itpass として扱っていたサーバ機は ika-itpass として
扱うことになった.
((<DNS 班の作業を参照|[Memo2009][ITPASS] サーバ交換作業(村上(健), 古家, 井谷)#phase 3>))
== prefix.pl の修正
10/22 (木) 時点で prefix.pl の編集が適当でなかったことが phase 3 の作業中に分かったため, ika prefix.pl を tako の /usr/local/lib の prefix.pl と差し替えた.
== phase 3 (続き)
* ((<[EPA2008]サーバと予備サーバでのバックアップの設定>))の作業を行う
* 概要
ITPASS サーバにはバックアップとサーバ本体のトラブル時に代替するための
予備サーバを立ててある. /home 以下のいくつかの領域に関して,
ITPASS サーバ本体から予備サーバへ定期的にバックアップを取る.
* バックアップする領域
バックアップを取る領域は, 原則的にグループで管理する資源や,
システムにとって必要な資源である.
* 2009/10/23 現在, 以下の領域をバックアップの対象とする.
* aoelab cps epalab itpass pschool gate
* バックアップの際の認証方式
バックアップには rsync を用いる.
root アカウントでバックアップを行うが,
セキュリティを高めるため, その認証には SSH + 公開鍵暗号を用いる.
* 準備
以降では, 新しく運用する EPA サーバのホスト名を itpass,
予備サーバを itpassbak と称する. 実際には, 使用するホストの名称に
置き換えて作業を行うこと.
まず, itpass, itpassbk ともに SSH デーモンが立ち上がっている必要があるため,
((<[EPA2008]sshのインストールと設定>)) を先に行っておくこと.
また, rsync を用いてバックアップを行うため, 以下のように rsync
パッケージをインストールせよ.
# apt-get install rsync
* インストールは既に行われていたので, 設定と rsync のパッケージがちゃんと動作することを確認する.
* tako-itpass 側の通信許可
最近の OpenSSH では, デフォルトでは root のログインを許可しないため,
設定を変更する. /etc/ssh/sshd_config の
PermitRootLogin no
という部分を
PermitRootLogin forced-commands-only
に変更したのち,
tako-itpass# /etc/init.d/ssh restart
として設定を反映すること. これにより, ((<URL:#epabk 側の鍵の設置>))
で指定したコマンドでのみログインを許可することとなる.
* ika-itpass 側でのデータ転送用スクリプトの設置
* 自作スクリプト用 cron ディレクトリ作成
自作の cron 用スクリプト置き場として, /etc/cron.local を作成する.
# mkdir /etc/cron.local
# mkdir /etc/cron.local/daily
* これも既に作成されていた.
* バックアップ用スクリプトの用意
((<rsync_epabk.sh|URL:../epa/system_backup_2008/rsync_epabk.sh>))
を参考に /etc/cron.local/daily/230_rsync_itpassbk を設置する.
(スクリプト先頭の番号は, その他のスクリプトを置いた際, どれを
優先して実行するかを決めるためのものである. 若い番号のものほど
先に実行される).
* ちなみにこの辺りからは ika-itpass で行う作業なので, 間違って
tako-itpass で作業を行っている人はスクリプトの設置の頭まで
戻るように
以下のように /etc/cron.local/daily/230_rsync_itpassbk に実行権限を
設定する.
# chmod 755 /etc/cron.local/daily/230_rsync_itpassbk
* バックアップ用スクリプトの編集
ika-itpass および tako-itpass のホスト名やバックアップする領域に応じて,
230_rsync_itpassbk を編集する. 主に編集するのは以下の項目である.
: SHARED_HOST
バックアップを行う 2 つのホスト (本文書での ika-itpass および tako-itpass)
のドメイン名 (ホスト名 + ドメイン名) をスペースで区切って
記述する. 送信元と送信先で順序を変える必要は無い.
このスクリプトではスクリプトを起動するホストが必ず
転送元で, もう一方が転送先になるようになっている.
* 入手した時点で書かれていると思うが, 確認しておく.
"ika-itpass.scitec.kobe-u.ac.jp tako-itpass.scitec.kobe-u.ac.jp"
とあればOK. 上記のように順番はどちらでもよい.
: BKSUBDIRS
転送する領域を記述する. これは ((<URL:#バックアップする領域>))
に応じて書き換えること.
なお, "hoge/" 等と最後にスラッシュをいれると転送がうまく
いかなくなるので注意すること.
* BKSUBDIRS="aoelab cps epalab itpass pschool gate" と
なっていればよい
* crontab の編集
/etc/crontab を編集する. 以下の一行を追加する.
25 6 * * * root cd / && run-parts --report /etc/cron.local/daily
出力結果に関してメールを送信したい場合には以下のようにすると良い.
25 6 * * * root cd / && run-parts --report /etc/cron.local/daily |mail -s "`hostname -f` daily run outputs" xxx@xxx.xxxx
* これも Mail 構築のときに編集済み. 確認したときにアドレスが
"itpadmin_at_itpass.scitec.kobe-u.ac.jp" となっていればよい.
* バックアップログファイルの作成
ログファイルのためのディレクトリとファイルを作成しておく.
なお, このログファイルの場所は ((<URL:#バックアップ用スクリプトの用意>))
で用意した 230_rsync_itpassbk 内の LOGFILE を書き換えることで変更できる.
# mkdir /var/log/rsync-log
# touch /var/log/rsync-log/itpassbk.log
* touch は指定したファイルが存在しないときは, 中身が空のファイルを作成する.
touch をする前に itpassbk.log というファイルがなくても戸惑わないように.
* バックアップログファイルの logrotate の設定
rsync のログを 1 週間毎に分割する.
/etc/logrotate.d/ 以下に rsync_itpassbk という設定ファイルを作成.
# vi /etc/logrotate.d/rsync_itpassbk
以下の内容を書き込む.
/var/log/rsync-log/itpassbk.log {
weekly
create 0644 root root
rotate 12
}
* 参考資料
* ((<"佐藤裕介, 2005: rsync + cron + ssh (rsyncd を立てない編)"|URL:http://www2s.biglobe.ne.jp/~nuts/labo/inti/cron-rsync-ssh-nodaemon.html>))
* ((<"梅原大祐, 2006: rsync + cron + ssh でセキュアな自動リモートバックアップ"|URL:http://www.imc.cce.i.kyoto-u.ac.jp/~umehara/misc/comp/20061121.html>))
* ((<[Memo2008][EPA]EPA サーバ交換作業ログ(北野・須賀)>))
== phase 4
* 移行の最終チェック
* ika
* pop: メールをとってこれるか
* smtp: メールを出せるか, 受け取れるか
* mailing list: メールが配送されるか
* tako
* pop: 無効になっているか
* smtp: submit は有効にするが, 受け取らない設定になっているか
* new の smtp や Mailing list の確認は Mail の構築の際と同じような手順で
チェックする(qmail-inject で外にメールが届くか, 外からメールを送って届くか,
Mailing list にメールを送って届くか).
* pop の確認の準備
ika の利用者は自分の ika のアカウントで, .qmail の設定と Mailbox の作成
popauth コマンドを行ってパスワードを作っておく作業をする
メーラーの設定は pop サーバ, smtp サーバはどちらも itpass.scitec.kobe-u.ac.jp にする
認証形式は APOP で, 暗号化は pop も smtp も無しにする
受信のときにパスワードを要求されるので, popauth で作成したパスワードを入力する.
[((<ITPASSサーバ構築ドキュメント>))へ戻る]