第 20 章 使用 RHEL 系统角色配置 Postfix MTA
使用 postfix
RHEL 系统角色,您可以统一简化 Postfix 服务的自动配置,带有模块化设计的与 Sendmail 兼容的邮件传输代理(MTA),以及各种配置选项。rhel-system-roles
软件包包含此 RHEL 系统角色,以及参考文档。
20.1. 使用 postfix
RHEL 系统角色自动化基本 Postfix MTA 管理
您可以使用 postfix
RHEL 系统角色在受管节点上安装、配置和启动 Postfix 邮件传输代理。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 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
如果您希望 Postfix 使用与
gethostname ()
函数返回的完全限定域名(FQDN)不同的主机名,请在文件中的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/
目录