diff options
-rw-r--r-- | provider_base/common.json | 6 | ||||
-rw-r--r-- | provider_base/services/mx.json | 3 | ||||
-rw-r--r-- | puppet/modules/site_config/manifests/default.pp | 4 | ||||
-rw-r--r-- | puppet/modules/site_postfix/manifests/mx.pp | 5 | ||||
-rw-r--r-- | puppet/modules/site_postfix/manifests/mx/checks.pp (renamed from puppet/modules/site_postfix/manifests/checks.pp) | 0 | ||||
-rw-r--r-- | puppet/modules/site_postfix/manifests/mx/reserved_aliases.pp | 4 | ||||
-rw-r--r-- | puppet/modules/site_postfix/manifests/satellite.pp | 11 |
7 files changed, 24 insertions, 9 deletions
diff --git a/provider_base/common.json b/provider_base/common.json index 2313bd8b..5be0dd70 100644 --- a/provider_base/common.json +++ b/provider_base/common.json @@ -3,6 +3,7 @@ "environment": null, "services": [], "tags": [], + "contacts": "= global.provider.contacts.default", "domain": { "full_suffix": "= global.provider.domain", "internal_suffix": "= global.provider.domain_internal", @@ -35,5 +36,8 @@ }, "name": "common", "location": null, - "enabled": true + "enabled": true, + "mail": { + "smarthost": "= nodes_like_me[:services => :mx].exclude(self).field('domain.full')" + } } diff --git a/provider_base/services/mx.json b/provider_base/services/mx.json index f999dd23..7b0aa57b 100644 --- a/provider_base/services/mx.json +++ b/provider_base/services/mx.json @@ -1,7 +1,4 @@ { - "mx": { - "contact": "= global.provider.contacts.default" - }, "stunnel": { "couch_client": "= stunnel_client(nodes_like_me[:services => :couchdb], global.services[:couchdb].couch.port)" }, diff --git a/puppet/modules/site_config/manifests/default.pp b/puppet/modules/site_config/manifests/default.pp index d3bb241f..a645cb1a 100644 --- a/puppet/modules/site_config/manifests/default.pp +++ b/puppet/modules/site_config/manifests/default.pp @@ -71,4 +71,8 @@ class site_config::default { include site_squid_deb_proxy::client } + if $::services !~ /\bmx\b/ { + include site_postfix::satellite + } + } diff --git a/puppet/modules/site_postfix/manifests/mx.pp b/puppet/modules/site_postfix/manifests/mx.pp index a043c277..474ed03d 100644 --- a/puppet/modules/site_postfix/manifests/mx.pp +++ b/puppet/modules/site_postfix/manifests/mx.pp @@ -3,10 +3,9 @@ class site_postfix::mx { $domain_hash = hiera ('domain') $domain = $domain_hash['full_suffix'] $host_domain = $domain_hash['full'] - $mx_hash = hiera('mx') $cert_name = hiera('name') - $root_mail_recipient = $mx_hash['contact'] + $root_mail_recipient = hiera ('contacts') $postfix_smtp_listen = 'all' include site_config::x509::cert @@ -32,7 +31,7 @@ class site_postfix::mx { } include site_postfix::mx::smtpd_checks - include site_postfix::checks + include site_postfix::mx::checks include site_postfix::mx::tls include site_postfix::mx::reserved_aliases diff --git a/puppet/modules/site_postfix/manifests/checks.pp b/puppet/modules/site_postfix/manifests/mx/checks.pp index 31399d32..31399d32 100644 --- a/puppet/modules/site_postfix/manifests/checks.pp +++ b/puppet/modules/site_postfix/manifests/mx/checks.pp diff --git a/puppet/modules/site_postfix/manifests/mx/reserved_aliases.pp b/puppet/modules/site_postfix/manifests/mx/reserved_aliases.pp index 6df53355..aea66f78 100644 --- a/puppet/modules/site_postfix/manifests/mx/reserved_aliases.pp +++ b/puppet/modules/site_postfix/manifests/mx/reserved_aliases.pp @@ -1,11 +1,11 @@ -class site_postfix::reserved_aliases { +class site_postfix::mx::reserved_aliases { postfix::mailalias { [ 'postmaster', 'hostmaster', 'domainadmin', 'certmaster', 'ssladmin', 'arin-admin', 'administrator', 'webmaster', 'www-data', 'www', 'nobody', 'sys', 'postgresql', 'mysql', 'bin', 'cron', 'lp', 'games', 'maildrop', 'abuse', 'noc', 'security', 'usenet', 'news', 'uucp', - 'ftp': + 'ftp' ]: ensure => present, recipient => 'root' } diff --git a/puppet/modules/site_postfix/manifests/satellite.pp b/puppet/modules/site_postfix/manifests/satellite.pp new file mode 100644 index 00000000..de20b667 --- /dev/null +++ b/puppet/modules/site_postfix/manifests/satellite.pp @@ -0,0 +1,11 @@ +class site_postfix::satellite { + + $root_mail_recipient = hiera ('contacts') + $mail = hiera ('mail') + $relayhost = $mail['smarthost'] + + class { '::postfix::satellite': + relayhost => $relayhost, + root_mail_recipient => $root_mail_recipient + } +} |