我尝试通过 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