検索
連載

qmailをより使いこなすTips(インストール関連編)実用qmailサーバ運用・管理術(13)(1/2 ページ)

本連載の総仕上げとして、アフターフォローや小ネタを含めたTipsを紹介する。今回はインストール関連編として、RPMを中心とした話題を集めてみた。

Share
Tweet
LINE
Hatena

 「実用qmailサーバ運用・管理術」を締めくくるに当たり、いままで紹介し切れなかったことをTipsとして2回にわたって紹介します。前回のトラブルシューティングと同様、すべてを網羅することはできないので、実際の運用で使われる頻度が高そうなものを見ていきましょう。

RPMでインストールしたい その1

 本連載では、パッケージの導入をソースからインストールする方法で説明してきました。しかし、最近のLinuxディストリビューションにはRPMなどのパッケージ管理ツールが備わっており、パッケージの依存性が崩れてしまうなどの懸念からかソースからのインストールを嫌う方もいるようです。qmailをソースからインストールしてもパッケージの依存性を損なうことはありませんが、パッケージ管理ツールで一元管理できるメリットも捨て難いものです。そこで、現在最も普及しているパッケージ管理システムであるRPM(Red Hat Package Manager)を例に見ていきましょう。

 RPMといっても、実はバージョンによって実行するコマンドや用意するファイルが違ってきます。ここではバージョン4以上を前提にします(バージョン3の場合は、注を参照ください)。RPMのバージョンは、以下の方法で確認できます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

qmailインストールの前に

 1つのサーバに2つのMTAは要らないので、sendmailを削除します。残しておくとqmailのインストールの際にエラーが発生します()。

注:qmailをインストールすると、/var/qmail/bin/sendmailをリンク元として/usr/lib/sendmailが作成されます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 場合によっては依存関係を無視する必要があります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 PostfixがデフォルトのMTAとして動作している場合もあるため、これを削除するかサービスの自動起動をntsysvなどのコマンドで解除しておきます。

RPMによるqmailのインストール

 次にqmailのRPMファイルを入手してインストールするわけですが、ビルドされたRPMが公開されていない()ため、SRPMを入手してrpmbuildを実行し、ビルド済みRPMファイルを作成する必要があります。

注:公開されているqmail-1.03-109memphis.src.rpmは、実際にはmakeまで終了しているバイナリで構成されています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

注:rpm バージョン3の場合は、# rpm -ba /usr/src/redhat/SPECS/var-qmail.spec

 rpmbuildが終わったら、ビルド済みRPMファイルをインストールします。ただし、ここで作成したRPMファイルにはqmail-date-localtime.patchが適用されていないため、ヘッダに記録される日付・時間情報がローカルタイムになりません。qmail-date-localtime.patchを適用するには、後述の「RPMでインストールしたqmailにパッチを当てるには」を参照してください。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ここまでの操作で「./config-fast ホスト名」()まで実行してくれるため、ほとんど手を加える必要はありません。ただ、Maildir形式でメッセージを保存する場合は/var/qmail/rcファイルを編集します。

注:ホスト名には「hostname -f」の値が使われます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 確認のため配信テストを行います。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

RPMによるtcpserverのインストールと設定

 以上の作業で、xinetdやinetdを使ってqmailを動作させることはできますが、qmailといえばやはりucspi-tcpパッケージに含まれるtcpserverです。ucspi-tcpはビルドされたRPMファイルが用意されているため、checkpassword-0.90-1と併せて入手・インストールします。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 残りの作業は第1回 qmailによるSMTPサーバの構築の「tcpserverのインストールとcdbの作成」以降と同じように行います。

 まず、次のような/etc/tcp.smtpファイルを用意し、

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

以下のようにしてcdbファイルを作成します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 cdbファイルを作成したら、rcスクリプトを用意します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 qmailのrcスクリプトを用意したら、ipchainsやiptablesでSMTPやPOP3がブロックされていないか確認し、サービスを開始します。また、ユーザーのためのMaildirディレクトリを用意することをお忘れなく。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

RPMでインストールしたい その2

 「RPMでインストールしたい その1」では、最後のrcスクリプトを第1回 qmailによるSMTPサーバの構築と同様に手動で作成する必要がありました。

 しかし、rcスクリプトまで面倒を見てくれるRPMパッケージもあります。http://www.qmail.org/rpms/には、qmail-runパッケージが用意されています。ただ、このパッケージが提供するものは、正確にはrcスクリプトではなく第9回 daemontoolsによるロギングとプロセス監視で紹介したsvscanによるqmailプロセスの常駐化です。そのため、qmail-runを利用するには次のパッケージもインストールする必要があります。

  • functions-4-2
  • daemontools-0.76
  • runlevelconf-0.07
  • dt-run-11.06

各種パッケージのインストール

 「RPMでインストールしたい その1」の手順でqmail-1.03-109memphis.i386.rpmとucspi-tcp-0.88-003memphis.i386.rpmのインストールまで済んでいるものとします。次に必要なRPMファイルをインストールしますが、順番に注意しましょう。最後にqmail-runパッケージをインストールするようにします。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

各種設定の実施

 svscanが実行されるように、/etc/inittabに設定を数行追加します。追加する場所にも注意しましょう。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 編集したら/etc/inittabファイルを再認識させます。その後、svscanプロセスが起動していることを確認します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ここからは第9回 daemontoolsによるロギングとプロセス監視で説明したとおり、svscanに監視させたいプロセスを/serviceディレクトリに登録する必要があります。add-service.shスクリプトを利用することで手順を省略できます。まず、デフォルトで登録可能なサービスを見てみましょう。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ここで表示されるサービスの実体は/var/serviceにあります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 qmail-qmqpdやrblsmtpdなど、興味をそそるものも用意されていますが、まずはいままでの定石どおりqmail、qmail-smtpd、qmail-pop3dを常駐サービスに加えることにします。

 次に、デフォルトの設定で変更や追加が必要な個所に修正を加えます。「RPMでインストールしたい その1」で、/var/qmail/rcを編集してメッセージをMaildir形式で保存するようにしました。ここでは、/var/service/qmail/defaultdelivery/rcファイルを設定します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 tcprulesで使用するリレーコントロールファイル(cdbファイル)を/var/service/サービス名ディレクトリに用意します。tcp.smtpファイルの記述については、第1回 qmailによるSMTPサーバの構築を参照してください。

●qmail-smtpd用tcp.smtp.cdbファイルの準備

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 上記のようなファイルを用意し、以下の手順でcdbファイルを生成します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

●qmail-pop3d用tcp.smtp.cdbファイルの準備

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 同じくtcp.smtpファイルを用意し、cdbファイルを生成します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ちなみに、cdbファイルは/var/service/サービス名/runファイル中のCDB変数で指定されています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 multilogでログを記録する際のファイルサイズの制限、ローテーションファイルの個数の設定は、次のファイルで行います。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 準備が整ったらadd-service.shスクリプトを使い、サービスを追加します。add-service.shの引数にqmail、qmail-pop3d、qmail-smtpdの3つを指定します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 登録されたサービスに対するリンクファイルが/serviceディレクトリに作成されていることを確認します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 それぞれのサービスの状態は、

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

でも確認できます。

 /commandディレクトリにはそれぞれのサービスに対してinitファイルが作成されているため、そちらを使用します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 以上で作業は終了です。複数のパッケージを導入するためコマンド1つで完了とはいきませんが、ソースからインストールするよりは負担が軽くなります。エラーが出てしまうと、どこでエラーが発生しているかを調べるのに手間が掛かるという側面もありますが、落ち着いてもう1度エラーメッセージを確認しましょう。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る