Skip to content
Snippets Groups Projects
Select Git revision
  • bdd4acdee515ca0eb99f070a34985fae8d4659cc
  • master default protected
  • update-min-openvox-version-07f8cb2
  • 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
  • v6.0.0
  • 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
41 results

init.pp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    hash.pp 1.64 KiB
    #== Definition: postfix::hash
    #
    #Creates postfix hashed "map" files. It will create "${name}", and then build
    #"${name}.db" using the "postmap" command. The map file can then be referred to
    #using postfix::config.
    #
    #Parameters:
    #- *name*: the name of the map file.
    #- *ensure*: present/absent, defaults to present.
    #- *source*: file source.
    #
    #Requires:
    #- Class["postfix"]
    #
    #Example usage:
    #
    #  node "toto.example.com" {
    #
    #    include postfix
    #
    #    postfix::hash { "/etc/postfix/virtual":
    #      ensure => present,
    #    }
    #    postfix::config { "virtual_alias_maps":
    #      value => "hash:/etc/postfix/virtual"
    #    }
    #  }
    #
    define postfix::hash (
      $ensure='present',
      $source=undef,
      $content=undef,
    ) {
      include ::postfix::params
    
      validate_absolute_path($name)
      validate_string($source)
      validate_string($content)
      validate_string($ensure)
      validate_re($ensure, ['present', 'absent'],
        "\$ensure must be either 'present' or 'absent', got '${ensure}'")
    
      if $source and $content {
        fail "You must provide either 'source' or 'content', not both"
      }
    
      File {
        mode    => '0600',
        owner   => root,
        group   => root,
        seltype => $postfix::params::seltype,
      }
    
      file { $name:
        ensure  => $ensure,
        source  => $source,
        content => $content,
        require => Package['postfix'],
      }
    
      file {"${name}.db":
        ensure  => $ensure,
        require => [File[$name], Exec["generate ${name}.db"]],
      }
    
      exec {"generate ${name}.db":
        command     => "postmap ${name}",
        #creates    => "${name}.db", # this prevents postmap from being run !
        subscribe   => File[$name],
        refreshonly => true,
        require     => Package['postfix'],
      }
    }