Puppet Class: datadog_agent::integrations::postfix

Inherits:
datadog_agent::params
Defined in:
manifests/integrations/postfix.pp

Overview

Class: datadog_agent::integrations::postfix

This class will install the necessary configuration for the Postfix integration

See the sample postfix.d/conf.yaml for all available configuration options github.com/DataDog/integrations-core/blob/master/postfix/datadog_checks/postfix/data/conf.yaml.example

Parameters:

$url:
    url used to connect to the Postfixd instance
$port:
$tags
    Optional array of tags

Sample Usage:

include ‘datadog_agent::integrations::postfix’

OR

class { ‘datadog_agent::integrations::postfix’:

directory => '/var/spool/postfix-2'

}

Sample Usage (Instance):

class { 'datadog_agent::integrations::postfix' :
  instances => [{
    directory => '/var/spool/postfix-2',
    queues    => [ 'active', 'deferred' ]
  }]
}

Parameters:

  • directory (String) (defaults to: '/var/spool/postfix')
  • queues (Array) (defaults to: ['active', 'deferred', 'incoming'])
  • tags (Array) (defaults to: [])
  • instances (Optional[Array]) (defaults to: undef)


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'manifests/integrations/postfix.pp', line 34

class datadog_agent::integrations::postfix (
  String $directory          = '/var/spool/postfix',
  Array $queues              = ['active', 'deferred', 'incoming'],
  Array $tags                = [],
  Optional[Array] $instances = undef,
) inherits datadog_agent::params {
  require datadog_agent

  if !$instances and $directory {
    $_instances = [{
        'directory' => $directory,
        'queues'    => $queues,
        'tags'      => $tags
    }]
  } elsif !$instances {
    $_instances = []
  } else {
    $_instances = $instances
  }

  $dst_dir = "${datadog_agent::params::conf_dir}/postfix.d"

  file { $dst_dir:
    ensure  => directory,
    owner   => $datadog_agent::dd_user,
    group   => $datadog_agent::params::dd_group,
    mode    => $datadog_agent::params::permissions_directory,
    require => Package[$datadog_agent::params::package_name],
    notify  => Service[$datadog_agent::params::service_name],
  }
  $dst = "${dst_dir}/conf.yaml"

  file { $dst:
    ensure  => file,
    owner   => $datadog_agent::dd_user,
    group   => $datadog_agent::params::dd_group,
    mode    => $datadog_agent::params::permissions_protected_file,
    content => template('datadog_agent/agent-conf.d/postfix.yaml.erb'),
    require => Package[$datadog_agent::params::package_name],
    notify  => Service[$datadog_agent::params::service_name],
  }
}