如何通过 puppet 使用智能主机配置 exim4?

如何通过 puppet 使用智能主机配置 exim4?

我尝试通过 puppet 自动执行 exim 设置。我遵循了描述的方法这里,它对我的​​一些软件包有用,但对于 exim 我遇到了一个问题:一个选择没有在新系统上正确应用。

在设置 exim 或运行时dpkg-reconfigure exim4-config,我选择智能主机选项如下图所示 在此处输入图片描述

将选择的内容导出到文件将产生以下结果(删除了一些部分)

$ debconf-get-selections | grep exim
exim4-config    exim4/dc_other_hostnames        string  my.other.hostname
exim4-config    exim4/dc_eximconfig_configtype  select  mail sent by smarthost; received via SMTP or fetchmail
exim4-config    exim4/no_config boolean true
exim4-config    exim4/hide_mailname     boolean true
exim4-config    exim4/dc_postmaster     string
exim4-config    exim4/dc_smarthost      string  my.smarthost.com::port
exim4-config    exim4/dc_relay_domains  string
exim4-config    exim4/dc_relay_nets     string
exim4-base      exim4/purge_spool       boolean false
exim4-config    exim4/mailname  string  my.mail.name

如您所见,所有选项都很好。请注意dc_eximconfig_configtype(输出的第 2 行)显示了从交互式配置中选择的值的文本。

当尝试在我的 Puppet 配置中使用此导出时,该参数未正确应用:

package { "exim4":
  responsefile => my-exported-exim4-debconf,
  ensure => installed;
}

我也尝试过通过导入配置debconf-get-selections,我假设 puppet 在这种情况下在 debian 环境中执行此操作,但它似乎被忽略了而没有提供任何迹象。

这是一个已知错误吗?您知道我该如何使用不同的配置导出(例如,为该参数提供整数索引)来解决这个问题,或者建议使用 puppet 分发 exim 配置的替代方案吗?

谢谢你,
Kariem

答案1

由于 exim 安装没有附带配置选项,而只是默认为本地模式,这可能是设置选项的原因。

无论如何,一个好的选择是不要使用dpkg-reconfigure,而是让puppet配置该文件,/etc/exim4/update-exim4.conf.conf然后运行命令update-exim4.conf

运行 dpkg 配置一次后,该文件将设置供您参考 puppet 主副本的选项,您可能希望在 puppet 中使用模板,因为文件中也有主机名。

答案2

您应该能够在本地宏文件中定义配置类型和智能主机。这适用/etc/exim4/conf.d/main/00_local_macros于拆分配置或/etc/exim4/exim4.conf.localmacros模板配置。

变量应为DC_eximconfig_configtype、、DC_eximconfig_satellite和。请参阅标题为的DC_smarthost部分。dynamically by /usr/sbin/update-exim4.conf/var/lib/exim4/config.autogenerated

相关内容