From 3b98214d83c7fe10a0c4e6897dee2ee6b73496d1 Mon Sep 17 00:00:00 2001 From: fukachan Date: Fri, 15 Aug 2008 02:41:15 +0000 Subject: add case study on fml.org 4th to 5th generation and virtual domain handling --- fml/doc/ja/tutorial/virtual/chapter.sgml | 155 ++++++++++++++++++++++++++----- 1 file changed, 134 insertions(+), 21 deletions(-) (limited to 'fml') diff --git a/fml/doc/ja/tutorial/virtual/chapter.sgml b/fml/doc/ja/tutorial/virtual/chapter.sgml index 0ced9025..53eef154 100644 --- a/fml/doc/ja/tutorial/virtual/chapter.sgml +++ b/fml/doc/ja/tutorial/virtual/chapter.sgml @@ -1,5 +1,5 @@ @@ -8,6 +8,14 @@ バーチャルドメインの取り扱いについて + +余談: +現在の第五世代 fml.org サーバ群のMLは全てバーチャルドメインで実装さ +れています。この方が統一が取れていて美しいです。 +だんだんドメインが増えることを考えると、 +はじめからバーチャルドメインで統一してあった方が扱いやすいと思います。 + + @@ -30,7 +38,7 @@ - モティーフ + バーチャルドメインのデザインモティーフ @@ -38,26 +46,38 @@ &fml8; 全体で統一的に扱えるようにしたい。 また、できるだけ &fml4; の素直な拡張であってほしい。 さらに、引越しなどが出来るだけ楽であると嬉しい。 -」これがモティーフです。 +」 +これがバーチャルドメインを設計する上での主要な条件です。 -そこで、「ユーザ@ドメイン」形式の文字列をML名に使うことにします。こ -れでデフォルトのドメインかバーチャルドメインかを &fml8; が解釈すること -が可能です。 +まずML名には「ユーザ@ドメイン」形式の文字列を使うことにします。 +これでデフォルトのドメインかバーチャルドメインかを &fml8; が解釈するこ +とが可能です。 -また、引越しやディレクトリ名の変更を楽に行なうコマンドを用意する予定で -す。 +ML名以外は従来のコマンド体系で素直に扱えます。 + +新ドメインのMLを作る際の最初の一回だけは MTA への追加設定が必要ですが、 +それ以外はデフォルトドメインと同様に扱えます。 + + + + - 概要: &fmldevel; におけるバーチャルドメインの取り扱い + 概要: &fml8; におけるバーチャルドメインの取り扱い @@ -70,19 +90,19 @@ ml_home_prefix_maps -この後は &fml4; と同様に makefml (or fml) コマンドを使ってください。た -だし、makefml (or fml)コマンドを使う際には、ML名を「ユーザ@ドメイン」 -形式で指定することだけが異なります。 +この後は &fml4; と同様に makefml (or fml) コマンドを使ってください。 +ただし、makefml (or fml)コマンドを使う際には、 +ML名を「ユーザ@ドメイン」形式で指定することだけが異なります。 -なお、デフォルトのドメインの場合には、@ドメインが省略可能です。 +なお、デフォルトのドメインの場合には@ドメインが省略可能です。 つまり、この場合に限り &fml4; と同じ形式に戻るというわけです。 例えば、コマンドの操作はMLではなく、ML@ドメイン名を使うことになり -ます。つまり +ます。つまりコマンドの使い方は makefml newml ML@virtualdomain makefml add ML@virtualdomain address @@ -112,6 +132,12 @@ http://lists/~fml/cgi-bin/fml/$domain/admin/config.cgi ML名やドメイン名は newml 時に作成される .cgi スクリプトにハードコー ディングされています。 + + +つまり、URL のドメインや環境変数を CGI スクリプトは見ていません。 +ハードコーディングされた設定だけを見ています。 + + @@ -119,18 +145,105 @@ http://lists/~fml/cgi-bin/fml/$domain/admin/config.cgi - ケーススタディ: ひっこし / 場変 はどうするの? (書きかけ_o_) + ケーススタディ: FML.ORG サーバ間引越の例 - + +FML.ORG で第四世代から第五世代サーバへ引越しをした時の記録を参考資料と +してまとめておきます。 + + + +結論から言えば、&fml4; → &fml8; コンバータは使いませんでした。 +全てをコピーして、MTA 用の設定を生成しました(include の類は強制上書き)。 + + + +(1) 新サーバを用意します。 +ホスト名は今まで使ったことのない新しいものをつけました。 +この段階では、 +新サーバではインターネットからのメールを受け付けないようにして下さい。 + + + +(2) Postfix は localhost と新ホスト名だけを mydestination として受けと +るように設定します。かつて使ったことのあるドメイン全てはバーチャルドメ +インとして処理するためです。 + + + +(3) 旧サーバの Postfix を停止し、新たにメールを受け付けないように設定 +しておいてください。 + + + +そしてキューをフラッシュしつくします。残っているキューを調べML宛のも +のがないことを確認します(mailq と postcat、削除するなら postsuper も使 +う)。ps で走っているプロセスがないか?も確認して下さい。 + -ホストを新しくする? ドメインを変更する? 他には何かある? +旧サーバで処理されるべきメールが全てなくなった、つまりMLの更新がいっ +さいなくなったことに自信ができたら次に進みます。 + +(4) 旧サーバから新サーバへML全体(/var/spool/ml 相当)をコピーします。 +時間をかけないために、もちろん事前にコピーはしてあり、最後の差分だけを +rsync するということです。 + + + +(5) MLを再配置します。 + +ベースディレクトリ/ドメイン名/ML名 + +として、ドメイン名がはっきり分かるようにしました。 + + + +(6) ドメインごとにMLの設定を再生成します。 + +% su root +# makefml newdomain ドメイン名 ベースディレクトリ/ドメイン名 +# suspend +% makefml --force newml ML名1 +% makefml --force newml ML名2 + ... 必要なもの全部 ... + +config.cf include ファイル群、MTA用の設定ファイルが生成されます。 +デフォルト値と異なる設定のMLは config.cf を編集してください。 + + + +(7) ドメインごとに Postfix の alias_maps と virtual_maps へ設定を追加 +し、動作確認をします。 + + + +(8) ドメインの数だけ (6)(7) を繰り返します。 + + + +(9) ローカルでテストをして問題がないようなら、 +新サーバでインターネットからのメールを受け付けるようにします +(/etc/postfix/main.cf の inet_interfaces か /etc/postfix/master.cf を +編集し、念のため reload ではなく stop and start)。 + + + +終りです。奇麗になりましたね。 + + + +なお、WWW アーカイブの作りなおしとか必要なら、さらに作業が続きます。 +本ドキュメントの該当する記述を参照して下さい。 + + + + + + -- cgit v1.2.1