如何使用木偶重新配置后缀



我正在使用一堆 ubuntu 虚拟机 (VM),它们使用相同的邮件中继服务器。虚拟机由傀儡管理。我创建了一个简单的模块,用于在所有 VM 上安装和配置后缀作为"卫星系统"。请参阅下面的模块清单文件。从节点块调用模块,如下所示:

node "mynode.com" {
  class { 'postfix_satellite': mailname => 'mydomain.com', relayhost => 'myrelay.com' }
}

问题是此解决方案在首次运行时安装和配置后缀,但如果预种子文件的模板发生更改,它不会重新配置后缀。仅安装了预种子文件,我必须手动运行dpkg-reconfigure -f noninteractive postfix。欢迎任何想法。

# Puppet module: postfix_satellite
#
class postfix_satellite ( $mailname, $relayhost ) {
  case $operatingsystem {
    ubuntu:  { }
    default: { fail("postfix_satellite: unsupported OS: ${operatingsystem}") }
  }
  $preseed_dir      = '/var/local/preseed'
  $preseed_file = "postfix.preseed"
  # -- Packages
  package { 'postfix':
    ensure          => present,
    responsefile    => "${preseed_dir}/${preseed_file}",
    require                 => File["${preseed_dir}/${preseed_file}"],
  }
  package { 'mailutils':
    ensure  => present,
    require => Package['postfix'],
  }
  # -- Service      
  service { 'postfix':
    ensure          => running,
    enable          => true,
    hasstatus       => true,
    hasrestart      => true,
    require => Package['postfix'],
  }
  file { $preseed_dir:
    ensure          => directory,
    owner           => root,
    group           => root,
    mode            => 755,
  }
  file { "${preseed_dir}/${preseed_file}":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => 644,
    content => template("postfix_satellite/${preseed_file}.erb"),
  }
}

如果你坚持通过包预置文件管理后缀,你可以使用大锤方法。

exec { 'apt-get install --reinstall postfix':
    refreshonly => true,
    subscribe   => File["${preseed_dir}/${preseed_file}"],
    path        => '/bin:/usr/bin'
}

但是,如果我站在你的立场上,即使在安装后,我也会寻找一个现有的模块来积极管理后缀。

相关内容

  • 没有找到相关文章

最新更新