Skip to content
Snippets Groups Projects
Select Git revision
  • 0c142fd9a95ec33be476ca5e1857cfee845dba36
  • master default protected
  • cleanup_fixtures
  • add-openvox
  • freebsd-14
  • remove-legacy-top-scope-syntax
  • rel430
  • tests
  • revert-363-augeas-module-cleanup
  • release-4.1.0
  • puppet8
  • relax-dependencies
  • rel400
  • mode
  • puppet7
  • release-3.1.0
  • freebsd13
  • freebsd11
  • stdlib
  • centos
  • fedora
  • v5.1.0
  • v5.0.0
  • v4.5.0
  • v4.4.0
  • v4.3.0
  • v4.2.1
  • v4.2.0
  • v4.1.0
  • v4.0.0
  • v3.1.0
  • v3.0.0
  • v2.0.0
  • 1.12.0
  • 1.11.0
  • 1.10.0
  • 1.9.0
  • 1.8.0
  • 1.7.0
  • 1.6.0
  • 1.5.0
41 results

config.pp

Blame
  • user avatar
    Raphaël Pinson authored
    0c142fd9
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    config.pp 1.18 KiB
    #
    # == Definition: postfix::config
    #
    # Uses Augeas to add/alter/remove options in postfix main
    # configuation file (/etc/postfix/main.cf).
    #
    # TODO: make this a type with an Augeas and a postconf providers.
    #
    # === Parameters
    #
    # [*name*]   - name of the parameter.
    # [*ensure*] - present/absent. defaults to present.
    # [*value*]  - value of the parameter.
    #
    # === Requires
    #
    # - Class["postfix"]
    #
    # === Examples
    #
    #   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}'")
    
      if (!defined(Class['postfix'])) {
        fail 'You must define class postfix before using postfix::config!'
      }
    
      Augeas {
        incl    => '/etc/postfix/main.cf',
        lens    => 'Postfix_Main.lns',
      }
    
      case $ensure {
        present: {
          augeas { "set postfix '${name}' to '${value}'":
            changes => "set ${name} '${value}'",
          }
        }
        absent: {
          augeas { "rm postfix '${name}'":
            changes => "rm ${name}",
          }
        }
        default: {}
      }
    }