config.pp 1.04 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
== Definition: postfix::config

Uses the "postconf" command to add/alter/remove options in postfix main
configuation file (/etc/postfix/main.cf).

Parameters:
- *name*: name of the parameter.
- *ensure*: present/absent. defaults to present.
- *value*: value of the parameter.

Requires:
- Class["postfix"]

Example usage:

  node "toto.example.com" {

    include postfix

    postfix::config {
      "smtp_use_tls"            => "yes";
      "smtp_sasl_auth_enable"   => "yes";
      "smtp_sasl_password_maps" => "hash:/etc/postfix/my_sasl_passwords";
      "relayhost"               => "[mail.example.com]:587";
    }
  }

*/
30
31
32
33
34
35
36
37
define postfix::config ($ensure = present, $value) {

  Augeas {
    context => "/files/etc/postfix/main.cf",
    notify  => Service["postfix"],
    require => File["/etc/postfix/main.cf"],
  }

38
39
  case $ensure {
    present: {
40
41
      augeas { "set postfix $name to $value":
        changes => "set $name $value",
42
43
44
45
      }
    }

    absent: {
46
47
48
      augeas { "set postfix $name to $value":
        changes => "rm $name",
      }
49
50
51
    }
  }
}