Skip to content
Snippets Groups Projects
Select Git revision
  • b54e2fff25d28e406e9819db6f80267d9040205f
  • master default protected
  • main
  • update_github_actions
  • 144_rocky8_support
  • 195-update-pdk-to-300
  • 144-rocky8
  • add_test_github_test_workflow
  • pdk_2.4.0
  • fix_unclosed_let_block_in_defines_client_spec
  • validation_fixes
  • freeradius_3_0_21_config_updates
  • data_types
  • PrepareBuster
  • travis
  • 4.0.1
  • 4.0.0
  • 3.9.2
  • 3.9.1
  • 3.9.0
  • 3.8.2
  • 3.8.1
  • 3.8.0
  • 3.7.0
  • 3.6.0
  • 3.5.0
  • 3.4.3
  • 3.4.2
  • 3.4.1
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.0
  • 3.0.0
  • 2.3.1
35 results

dictionary.header

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    config.pp 1.54 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/blank. defaults to present.
    # [*value*]  - value of the parameter.
    #
    # === Requires
    #
    # - Class["postfix"]
    #
    # === Examples
    #
    #   postfix::config { 'smtp_use_tls':
    #     ensure => 'present',
    #     value  => 'yes',
    #   }
    #
    #   postfix::config { 'relayhost':
    #     ensure => 'blank',
    #   }
    #
    define postfix::config ($value = undef, $ensure = 'present') {
    
      validate_string($ensure)
      validate_re($ensure, ['present', 'absent', 'blank'],
        "\$ensure must be either 'present', 'absent' or 'blank', got '${ensure}'")
      if ($ensure == 'present') {
        validate_string($value)
        validate_re($value, '^.+$',
          '$value can not be empty if ensure = present')
      }
    
      if (!defined(Class['postfix'])) {
        fail 'You must define class postfix before using postfix::config!'
      }
    
      Augeas {
        incl    => '/etc/postfix/main.cf',
        lens    => 'Postfix_Main.lns',
        require => File['/etc/postfix/main.cf'],
      }
    
      case $ensure {
        present: {
          augeas { "set postfix '${name}' to '${value}'":
            changes => "set ${name} '${value}'",
          }
        }
        absent: {
          augeas { "rm postfix '${name}'":
            changes => "rm ${name}",
          }
        }
        blank: {
          augeas { "blank postfix '${name}'":
            changes => "clear ${name}",
          }
        }
        default: {}
      }
    }