pimvh.postfix
事前要件
- Ansible がインストールされていること:
sudo apt install python3
python3 -m ensurepip --upgrade
pip3 install ansible
- このロールをインストールする:
ansible-galaxy install pimvh.postfix
必要な変数
デフォルトで示されている変数を確認してください。変数の内容についての説明は、meta/main.yaml に在る引数の仕様に記載されています。このロールに渡される変数は、実行時に引数の仕様によって検証されます。
サンプルプレイブック
ホスト上でこのロールを実行する簡単な方法は以下の通りです:
- hosts:
- foo
vars:
postfix_ipv4: << ポストフィックスメールサーバーのIPv4アドレスをここに入力 >>
postfix_ipv6: << ポストフィックスメールサーバーのIPv6アドレスをここに入力 >>
postfix_myhostname: "<< ポストフィックスのドメイン名をここに入力 >>"
postfix_mydomain: "<< ポストフィックスのドメインをここに入力(デフォルトは myhostname)>>"
postfix_mynetworks:
- 127.0.0.0/8
- "::1/128" # IPv6 アドレスに括弧を付ける必要はありません。フィルターによって処理されます。
# 必要に応じて追加のネットワークを追加してください。
postfix_virtual_alias_domains: [] # 必要に応じて仮想エイリアスドメインを追加してください(構造は meta/main.yaml を参照)。
postfix_relay_domains: [] # 必要に応じてリレードメインを追加してください(構造は defaults/main.yaml を参照)。
postfix_aliases: # 必要に応じてユーザーエイリアスを追加してください。
- user: root
alias: postmaster
# ユーザーのリストとしても指定できます。
# - users:
# - fred
# - foo
# - bar
# alias: something
postfix_virtual_aliases: [] # 必要に応じて仮想エイリアスを追加してください(構造は meta/main.yaml を参照)。
# 残りの変数はスキップしても構いません。
# postfix_install: true
# postfix_dir: /etc/postfix
# postfix_dkim_enabled: true # DKIMはデフォルトで有効です。
# postfix_dkim_keys:
# default:
# mail: "*"
# DKIMファイルはファイルシステム上に配置されます。
# postfix_dkim_keytable: /etc/opendkim/keytable
# postfix_dkim_signingtable: /etc/opendkim/signingtable
# postfix_dkim_trustedhosts: "/etc/opendkim/trustedhosts"
# 証明書の場所はcertbotのデフォルトの場所に基づいています(証明書を取得するために、pimvh.certbotロールを実行できます)。
# postfix_smtpd_tls_cert_file: "/etc/letsencrypt/live/{{ postfix_mydomain }}/fullchain.pem"
# postfix_smtpd_tls_key_file: "/etc/letsencrypt/live/{{ postfix_mydomain }}/privkey.pem"
roles:
- pimvh.postfix
変数をホストやグループに基づいて設定することで、リファクタリングの手間を省けるでしょう。ただし、これは特定の使用事例によります。このため、Ansible推奨のプレイブック設定を参考にしてください。
要点 - 実行すると何が起こるのか
- 変数が正しいか検証します。
- postfixをインストールします。
- amavisをインストールし、設定します。
- opendkimをインストールし、設定します。
- opendmarcをインストールし、設定します。
- dovecotをシステムユーザーおよび仮想メールディレクトリと共にインストールし、設定します。
- mailutilsを設定します(このロールに依存しています)。
このロールが行わないこと
ファイアウォール設定
このロールはファイアウォール設定を行いません。特定の要件があるかもしれませんので、IMAPポートを全インターネットに開放することは避けたいでしょう。注意してください。
データベースバックエンドの設定
postfixのバックエンドとしてデータベースを設定する作業にはまだ取り組んでいません。興味があれば、貢献してください。
トラブルシューティング
このロールは渡された変数を検証します。もし:
- 引数の仕様に問題がある場合、変数を渡す時にエラーを犯した可能性があります。
- プレイブックを実行中に問題が発生した場合は、詳細に問題を説明して、問題を報告してください。
将来の改善点
このロールには改善できる点がまだいくつかあります。次のような追加を考えています:
- dmarcパースツールを追加
- ファイルシステムの代わりにデータベースのようなより良いバックエンドを追加
他に改善点があれば、お気軽に問題を報告してください。