Loading .fixtures.yml +1 −0 Original line number Diff line number Diff line fixtures: repositories: "augeas": "git://github.com/camptocamp/puppet-augeas.git" "stdlib": "git://github.com/puppetlabs/puppetlabs-stdlib.git" symlinks: "postfix": "#{source_dir}" files/lenses/postfix_virtual.aug +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ let space_or_eol (sep:regexp) (default:string) = del (space_or_eol_re? . sep . space_or_eol_re?) default (* View: word *) let word = store /[A-Za-z0-9@\*.-]+/ let word = store /[A-Za-z0-9@\*.+-]+/ (* View: comma *) let comma = space_or_eol "," ", " Loading manifests/augeas.pp +5 −0 Original line number Diff line number Diff line #class postfix::augeas # This class provides the augeas lenses used by the postfix class # class postfix::augeas { augeas::lens {'postfix_transport': ensure => present, lens_source => 'puppet:///modules/postfix/lenses/postfix_transport.aug', test_source => 'puppet:///modules/postfix/lenses/test_postfix_transport.aug', stock_since => '1.0.0', } augeas::lens {'postfix_virtual': ensure => present, lens_source => 'puppet:///modules/postfix/lenses/postfix_virtual.aug', test_source => 'puppet:///modules/postfix/lenses/test_postfix_virtual.aug', stock_since => '1.0.0', } } manifests/config.pp +17 −18 Original line number Diff line number Diff line Loading @@ -4,31 +4,30 @@ # 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. # === Parameters # #Requires: #- Class["postfix"] # [*name*] - name of the parameter. # [*ensure*] - present/absent. defaults to present. # [*value*] - value of the parameter. # #Example usage: # === Requires # # node "toto.example.com" { # - Class["postfix"] # # include postfix # === Examples # # 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"; # } # postfix::config { 'smtp_use_tls': # ensure => 'present', # value => 'yes', # } # # define postfix::config ($value, $ensure = present) { validate_string($value) validate_string($ensure) validate_re($ensure, ['present', 'absent'], "\$ensure must be either 'present' or 'absent', got '${ensure}'") Augeas { incl => '/etc/postfix/main.cf', lens => 'Postfix_Main.lns', Loading @@ -39,12 +38,12 @@ define postfix::config ($value, $ensure = present) { case $ensure { present: { augeas { "set postfix '${name}' to '${value}'": changes => "set $name '$value'", changes => "set ${name} '${value}'", } } absent: { augeas { "rm postfix '${name}'": changes => "rm $name", changes => "rm ${name}", } } default: {} Loading manifests/files.pp 0 → 100644 +92 −0 Original line number Diff line number Diff line class postfix::files { include postfix::params $alias_maps = $postfix::all_alias_maps $inet_interfaces = $postfix::inet_interfaces $mail_user = $postfix::mail_user $master_smtp = $postfix::master_smtp $master_smtps = $postfix::master_smtps $master_submission = $postfix::master_submission $myorigin = $postfix::myorigin $root_mail_recipient = $postfix::root_mail_recipient $smtp_listen = $postfix::_smtp_listen $use_amavisd = $postfix::use_amavisd $use_dovecot_lda = $postfix::use_dovecot_lda $use_schleuder = $postfix::use_schleuder $use_sympa = $postfix::use_sympa file { '/etc/mailname': ensure => 'file', content => "${::fqdn}\n", seltype => $postfix::params::seltype, } # Aliases file { '/etc/aliases': ensure => 'file', content => "# file managed by puppet\n", notify => Exec['newaliases'], replace => false, seltype => $postfix::params::seltype, } # Aliases exec { 'newaliases': command => '/usr/bin/newaliases', refreshonly => true, subscribe => File['/etc/aliases'], } # Config files if $postfix::mastercf_source { $mastercf_content = undef } else { $mastercf_content = template( $postfix::params::master_os_template, 'postfix/master.cf.common.erb' ) } file { '/etc/postfix/master.cf': ensure => 'file', content => $mastercf_content, group => 'root', mode => '0644', owner => 'root', seltype => $postfix::params::seltype, source => $postfix::mastercf_source, } # Config files file { '/etc/postfix/main.cf': ensure => 'file', group => 'root', mode => '0644', owner => 'root', replace => false, seltype => $postfix::params::seltype, source => $postfix::maincf_source, } ::postfix::config { 'alias_maps': value => $alias_maps; 'inet_interfaces': value => $inet_interfaces; 'myorigin': value => $myorigin; } case $::osfamily { 'RedHat': { ::postfix::config { 'mailq_path': value => '/usr/bin/mailq.postfix'; 'newaliases_path': value => '/usr/bin/newaliases.postfix'; 'sendmail_path': value => '/usr/sbin/sendmail.postfix'; } } default: {} } mailalias {'root': recipient => $root_mail_recipient, notify => Exec['newaliases'], } } Loading
.fixtures.yml +1 −0 Original line number Diff line number Diff line fixtures: repositories: "augeas": "git://github.com/camptocamp/puppet-augeas.git" "stdlib": "git://github.com/puppetlabs/puppetlabs-stdlib.git" symlinks: "postfix": "#{source_dir}"
files/lenses/postfix_virtual.aug +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ let space_or_eol (sep:regexp) (default:string) = del (space_or_eol_re? . sep . space_or_eol_re?) default (* View: word *) let word = store /[A-Za-z0-9@\*.-]+/ let word = store /[A-Za-z0-9@\*.+-]+/ (* View: comma *) let comma = space_or_eol "," ", " Loading
manifests/augeas.pp +5 −0 Original line number Diff line number Diff line #class postfix::augeas # This class provides the augeas lenses used by the postfix class # class postfix::augeas { augeas::lens {'postfix_transport': ensure => present, lens_source => 'puppet:///modules/postfix/lenses/postfix_transport.aug', test_source => 'puppet:///modules/postfix/lenses/test_postfix_transport.aug', stock_since => '1.0.0', } augeas::lens {'postfix_virtual': ensure => present, lens_source => 'puppet:///modules/postfix/lenses/postfix_virtual.aug', test_source => 'puppet:///modules/postfix/lenses/test_postfix_virtual.aug', stock_since => '1.0.0', } }
manifests/config.pp +17 −18 Original line number Diff line number Diff line Loading @@ -4,31 +4,30 @@ # 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. # === Parameters # #Requires: #- Class["postfix"] # [*name*] - name of the parameter. # [*ensure*] - present/absent. defaults to present. # [*value*] - value of the parameter. # #Example usage: # === Requires # # node "toto.example.com" { # - Class["postfix"] # # include postfix # === Examples # # 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"; # } # postfix::config { 'smtp_use_tls': # ensure => 'present', # value => 'yes', # } # # define postfix::config ($value, $ensure = present) { validate_string($value) validate_string($ensure) validate_re($ensure, ['present', 'absent'], "\$ensure must be either 'present' or 'absent', got '${ensure}'") Augeas { incl => '/etc/postfix/main.cf', lens => 'Postfix_Main.lns', Loading @@ -39,12 +38,12 @@ define postfix::config ($value, $ensure = present) { case $ensure { present: { augeas { "set postfix '${name}' to '${value}'": changes => "set $name '$value'", changes => "set ${name} '${value}'", } } absent: { augeas { "rm postfix '${name}'": changes => "rm $name", changes => "rm ${name}", } } default: {} Loading
manifests/files.pp 0 → 100644 +92 −0 Original line number Diff line number Diff line class postfix::files { include postfix::params $alias_maps = $postfix::all_alias_maps $inet_interfaces = $postfix::inet_interfaces $mail_user = $postfix::mail_user $master_smtp = $postfix::master_smtp $master_smtps = $postfix::master_smtps $master_submission = $postfix::master_submission $myorigin = $postfix::myorigin $root_mail_recipient = $postfix::root_mail_recipient $smtp_listen = $postfix::_smtp_listen $use_amavisd = $postfix::use_amavisd $use_dovecot_lda = $postfix::use_dovecot_lda $use_schleuder = $postfix::use_schleuder $use_sympa = $postfix::use_sympa file { '/etc/mailname': ensure => 'file', content => "${::fqdn}\n", seltype => $postfix::params::seltype, } # Aliases file { '/etc/aliases': ensure => 'file', content => "# file managed by puppet\n", notify => Exec['newaliases'], replace => false, seltype => $postfix::params::seltype, } # Aliases exec { 'newaliases': command => '/usr/bin/newaliases', refreshonly => true, subscribe => File['/etc/aliases'], } # Config files if $postfix::mastercf_source { $mastercf_content = undef } else { $mastercf_content = template( $postfix::params::master_os_template, 'postfix/master.cf.common.erb' ) } file { '/etc/postfix/master.cf': ensure => 'file', content => $mastercf_content, group => 'root', mode => '0644', owner => 'root', seltype => $postfix::params::seltype, source => $postfix::mastercf_source, } # Config files file { '/etc/postfix/main.cf': ensure => 'file', group => 'root', mode => '0644', owner => 'root', replace => false, seltype => $postfix::params::seltype, source => $postfix::maincf_source, } ::postfix::config { 'alias_maps': value => $alias_maps; 'inet_interfaces': value => $inet_interfaces; 'myorigin': value => $myorigin; } case $::osfamily { 'RedHat': { ::postfix::config { 'mailq_path': value => '/usr/bin/mailq.postfix'; 'newaliases_path': value => '/usr/bin/newaliases.postfix'; 'sendmail_path': value => '/usr/sbin/sendmail.postfix'; } } default: {} } mailalias {'root': recipient => $root_mail_recipient, notify => Exec['newaliases'], } }