linux-system-roles.postfix

postfix

ansible-lint.yml ansible-test.yml markdownlint.yml tft.yml tft_citest_bad.yml woke.yml

此角色可以安装、配置并启动 Postfix MTA。

要求

请看下面。

集合要求

如果 postfix_manage_firewallpostfix_manage_selinux 设置为 true,此角色需要来自 fedora.linux_system_roles 集合的 firewallselinux 角色。 (请参见 postfix_manage_firewallpostfix_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_confprevious: replaced 来移除现有配置,然后在干净的 Postfix 安装上应用所需配置。 有关更多信息,请参见 postfix_conf

示例剧本

安装并启用 Postfix。配置 relay_domains=$mydestinationrelayhost=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/

安装
ansible-galaxy install linux-system-roles.postfix
许可证
gpl-3.0
下载
122.5k