止められないサーバのDebian upgrade時のTipsその1

そろそろDebianを業務で使っている場合のOS upgradeのTipsについて自己メモも含めて書いておこうと思います。

まず前提は

  • iDCなどで運営している
  • あまり止められないサービスである
  • oldstable --> stable へのアップグレードである
  • 対象サーバはLAMPサーバ、もしくはその一部を担っているサーバである
などなどです。

事前作業

アプリケーションがサーバーをどうやって使っているか関係者に聞き取り調査する

インフラ担当と開発担当兼任だったらよいのですが、大体は別で、お互いに好き勝手な事をしている場合が多いです。ウェブアプリがどのように動くか、確認しましょう。

特に、IP制限をウェブアプリ側でかけて検証出来るかどうか、メール配信、メルマガ配信などのロジックを確認するとよいかもしれません。

To Do 表を作る見本はこちら。odsです。

これは念入りに第三者のチェックも貰いながら叩いていく必要があります。
関係者にしつこいくらいに聞きましょう。彼らはメール送ったとしても見てはくれません(爆)

ユーザー・クライアントに告知する

これはインフラ担当、というより営業の仕事になるかもしれません。告知方法はメルマガを打つタイミングで載せてもらったり、サイトのトップに一文載せてもらう、などです。今までの経験から1Uは大体バックアップ・アップグレード・検証も2時間~3時間ぐらいかかります。

変更がないデータ、設定情報をバックアップするshellscriptはこちら

これは作業日からOS アップグレードまでの間に更新がないファイルだけをあらかじめバックアップ取っておきます。Debianの公式サイトでのマニュアルだと、
/etc
/var/lib/dpkg
/var/lib/aptitude/pkgstates の中身
dpkg --get-selections "*" (引用符を忘れてはいけません)
らしいです。当日にも/var/www, /var/lib/mysql, /var/spool/xxxなどもバックアップを取りますが、取り合えず更新がないものだけバックアップを取り、別のサーバに退避させましょう。

メンテナンスページ/MTAの準備

メンテナンスページをデザイナーに用意してもらいましょう。また彼らに動的にページを出力出来ない事をしつこくいっておきましょう。もし同じドメインで携帯、PCと出し分けをしていたらこんな風(見本)にするとよいです。

メンテナンスページを表示するサーバにApacheでのVhost設定、MTAでのVhost設定(Exim4の場合)をあらかじめ設定しておきましょう。

メール確認スクリプトを仕込むshellscriptはこちら

既存のメールアドレスがたくさんある場合は、DNS変更の確認時にメールをいちいち送るのは面倒なので、スクリプトでやりましょう。簡単なので、メンテナンスサーバとかに置いてCrontabに設置か実際にスクリプトを叩くだけです。

Nagiosなど死活監視プログラムをつかっている場合は対象サーバの監視を当日止める

NagiosiDCからの死活サービスなどをしていれば、当日は止めておいた方がよいかと思います。その際にiDCなどの死活サービス停止・開始は、登録されている電話番号からのリクエストしか受け付けない、という所もあるので、事前に確認しましょう。

iDCの轟音の中で携帯で連絡してその事実を知るのは悲しいです(涙)

検証URLをwikiなどに載せてアクセスしやすいようにする(To Do 表でもよい)

まぁこれはなくてもいいのですが、あったらクリックだけなので楽です。

当日これだけ準備しても必ず何か起こります。


なので前日は早めに寝ます(←超重要)

日についてのTipsはまた明日。