ハイブリッドalias_maps


さて、そろそろとPostfixネタもストックが底をつきはじめたのでペースダウン。 (^_^;

以前書いたPostgreSQLを使ったalias_mapsの管理でhashのマップとPostgreSQLのマップを併用するパターンを、後日実験すると書いてしまったので実験してみよう。

まずはどのように併用するか検討する。

Sendmailで使っていた /etc/mail/aliases (伝統的には /etc/aliases だが現実としてはシンボリックリンクになっているだけなので実態ファイルを扱うことにする)は、テキストエディターで編集して newaliases コマンドでhash化するなど取り扱いが不便だ。
一方、PostgreSQLでマップを作り、Wedベースのツールを作ってしまえば簡単に入れ替えたり出来るのでDB管理するのは非常に便利である。
あえて併用する必要性は低い気もするが、一つ考えられる使い分けパターンとしてはシステムアカウント(daemonとかoperatorとかsystemなど)は通常rootに転送しているだけでほぼ半永久的に書き換えることはなさそうなので、このようなシステムアカウントはaliasesファイルに書いておき、rootの転送先やML用の記述等ある程度書き換えが発生しそうなものをDBで管理すると、DBで扱うエイリアスの数も絞られていいかもしれない。

という事で、まずは /etc/mail/aliases を整理してシステムアカウントだけにする。
出来上がったら# newaliasesをしておく。

そして、DBにたくさん登録したAlias情報の中から、aliasesファイルに記述した分を削除する。

次に /etc/postfix/main.cf を書き換える。
#alias_maps = pgsql:/etc/postfix/pgsql-aliases.cf
alias_maps = hash:/etc/mail/aliases, pgsql:/etc/postfix/pgsql-aliases.cf
変更内容は単純で、前回 alias_maps の指定をPostgreSQLだけにしたが、aliasesファイルと両方を指定するだけ、二つの設定をカンマで区切って書いてやればいい。

あとはPostfixに設定を再読込させる。
# /usr/sbin/postfix reload
実際に各Aliasに対してメールを送ってみて正しくメールが配送されれば設定完了。

コメント

コメントを残す

メールアドレスが公開されることはありません。