第22章 RHEL システムロールを使用した Postfix MTA の設定
postfix
RHEL システムロールを使用すると、Postfix サービスの自動設定を一貫して効率化できます。Postfix サービスは、モジュラー設計およびさまざまな設定オプションを備えた Sendmail 互換のメール転送エージェント (MTA) です。rhel-system-roles
パッケージに、この RHEL システムロールとリファレンスドキュメントが含まれています。
22.1. postfix
RHEL システムロールを使用した基本的な Postfix MTA 管理の自動化
postfix
RHEL システムロールを使用して、管理対象ノードに Postfix Mail Transfer Agent をインストール、設定、起動できます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Manage postfix hosts: managed-node-01.example.com roles: - rhel-system-roles.postfix vars: postfix_conf: relay_domains: $mydestination relayhost: example.com
gethostname()
関数によって返される完全修飾ドメイン名 (FQDN) とは異なるホスト名を Postfix で使用する場合は、ファイルのpostfix_conf:
行の下にmyhostname
パラメーターを追加します。myhostname = smtp.example.com
ドメイン名が
myhostname
パラメーターのドメイン名と異なる場合は、mydomain
パラメーターを追加します。それ以外の場合は、$myhostname
から最初のコンポーネントを除いた値が使用されます。mydomain = <example.com>
postfix_manage_firewall: true
変数を使用して、サーバー上のファイアウォールで SMTP ポートを開きます。SMTP 関連のポートである
25/tcp
、465/tcp
、および587/tcp
を管理します。変数がfalse
に設定されている場合、postfix
ロールはファイアウォールを管理しません。デフォルトはfalse
です。注記postfix_manage_firewall
変数の用途はポートの追加に限定されています。ポートの削除には使用できません。ポートを削除する場合は、firewall
RHEL システムロールを直接使用します。標準以外のポートを使用する場合は、
postfix_manage_selinux: true
変数を設定して、ポートがサーバー上で SELinux 用に適切にラベル付けされるようにします。注記postfix_manage_selinux
変数の用途は、SELinux ポリシーへのルールの追加に限定されています。ポリシーからルールを削除することはできません。ルールを削除する場合は、selinux
RHEL システムロールを直接使用します。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.postfix/README.md
ファイル -
/usr/share/doc/rhel-system-roles/postfix/
ディレクトリー