linux-system-roles.postfix
postfix
此角色可以安装、配置并启动 Postfix MTA。
要求
请看下面。
集合要求
如果 postfix_manage_firewall
和 postfix_manage_selinux
设置为 true,此角色需要来自 fedora.linux_system_roles
集合的 firewall
和 selinux
角色。
(请参见 postfix_manage_firewall
和 postfix_manage_selinux
)
如果 postfix
是来自 fedora.linux_system_roles
集合或 Fedora RPM 包的角色,则此要求已满足。
该角色还需要其他集合来管理 rpm-ostree
系统。
如果您需要管理 rpm-ostree
系统,请运行以下命令安装集合。
ansible-galaxy collection install -r meta/collection-requirements.yml
角色变量
postfix_conf
postfix_conf:
relayhost: example.com
这是一个字典,可以存储所有支持的 Postfix 配置参数的键/值对。安装的 Postfix 不支持的键将被忽略。默认值为空 {}
。
您可以在 postfix_conf
字典中指定 previous: replaced
以移除现有配置并应用所需的配置到干净的 Postfix 安装上。
警告:如果您指定 previous: replaced
,该角色将重新安装 Postfix 包并替换现有的 /etc/postfix/main.cf
和 /etc/postfix/master.cf
文件。确保备份这些文件以保存您的设置。
警告:在管理 rpm-ostree
系统时,角色无法重新安装 Postfix 包,因此只会用空文件替换修改后的配置文件。这不是幂等的。
如果您只在 postfix_conf
字典下指定 previous: replaced
,角色将重新安装 postfix
包并启用 postfix
服务,而不应用任何配置。
例如,要删除现有配置并在干净的 Postfix 安装上设置 relayhost: example.com
,请使用以下 postfix_conf
:
postfix_conf:
previous: replaced
relayhost: example.com
postfix_files
postfix_files:
- name: sasl_passwd
content: example.com user:password
postmap: true
- name: sender_canonical_maps
content: /.+/ [email protected]
这是一个文件列表,这些文件将放置在 /etc/postfix 中,并在需要时可以转换为 Postfix 查找表。
它作为一个简单的机制,用于配置诸如 SASL 凭据和其他小片段。
postfix_check
postfix_check: false
这是一个布尔值,决定在配置发生更改时,是否在启动 Postfix 前运行 postfix check
。默认值为 true
。
postfix_backup
postfix_backup: true
这是一个布尔值,决定角色是否会创建配置的单一备份副本 - 例如,
cp /etc/postfix/main.cf /etc/postfix/main.cf.backup
,
从而覆盖之前的备份(如果有)。默认值为 false
。注意:如果您希望将其设置为 true
,还必须将 postfix_backup_multiple
设置为 false
- 见下文。
postfix_backup_multiple
postfix_backup_multiple: false
这是一个布尔值,决定角色是否会创建带时间戳的备份副本 - 例如,
cp /etc/postfix/main.cf /etc/postfix/main.cf.$(date -Isec)
,
从而保留多个备份副本。默认值为 true
。注意:此设置会覆盖 postfix_backup
,因此如果您希望使用 postfix_backup
,则必须将其设置为 false
。
postfix_manage_firewall
布尔标志,允许使用防火墙角色配置防火墙。
管理与 SMTP 相关的端口:25/tcp、465/tcp 和 587/tcp。
如果该变量设置为 false
,则 postfix 角色
不会管理防火墙。
默认值为 false
。
注意:postfix_manage_firewall
仅限于 添加 端口。
不能用于 删除 端口。
如果您想要删除端口,您需要直接使用防火墙系统角色。
注意:在 RHEL 6 上不支持防火墙管理。
postfix_manage_selinux
布尔标志,允许使用 selinux 角色配置 selinux。
将 smtp_port_t
分配给与 SMTP 相关的端口。
如果该变量设置为 false,则 postfix 角色
不会管理 selinux。
注意:postfix_manage_selinux
仅限于 添加 策略。
不能用于 删除 策略。
如果您想要删除策略,您需要直接使用 selinux 系统角色。
限制
无法单独删除配置参数。
作为替代方案,您可以使用 postfix_conf
的 previous: replaced
来移除现有配置,然后在干净的 Postfix 安装上应用所需配置。
有关更多信息,请参见 postfix_conf
。
示例剧本
安装并启用 Postfix。配置 relay_domains=$mydestination
和 relayhost=example.com
。
---
- name: 管理 Postfix
hosts: all
vars:
postfix_conf:
relay_domains: $mydestination
relayhost: example.com
roles:
- linux-system-roles.postfix
安装并启用 Postfix。在重启 Postfix 前不运行 'postfix check':
---
- name: 管理不检查的 Postfix
hosts: all
vars:
postfix_check: false
roles:
- linux-system-roles.postfix
安装并启用 Postfix。对 main.cf 进行单次备份(较旧的备份将被覆盖)并配置 relayhost=example.com
:
---
- name: 管理带有 relayhost 的 Postfix
hosts: all
vars:
postfix_conf:
relayhost: example.com
postfix_backup: true
roles:
- linux-system-roles.postfix
安装并启用 Postfix。对 main.cf 进行带时间戳的备份,并配置 relayhost=example.com
(如果 postfix_backup_multiple
设置为 true,则忽略 postfix_backup
):
---
- name: 管理带有多个备份的 Postfix
hosts: all
vars:
postfix_conf:
relayhost: example.com
postfix_backup_multiple: true
roles:
- linux-system-roles.postfix
rpm-ostree
参见 README-ostree.md
许可证
版权 (C) 2017 Jaroslav Škarvada jskarvad@redhat.com
此程序是自由软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它,许可证的版本为 3,或(根据您的选择)任何更高版本。
此程序以有用的希望分发,但不提供任何保证;甚至没有适销性或特定用途的隐含保证。有关详细信息,请参见 GNU 通用公共许可证。
您应该已经收到与此程序一起提供的 GNU 通用公共许可证副本。如果没有,请参见 http://www.gnu.org/licenses/。