Skip to content
Snippets Groups Projects
Select Git revision
  • 9cfd6845509a4004fd6cff800fdebec6dd0744dc
  • 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

hash.pp

Blame
  • user avatar
    Marc Fournier authored
    eec3c07d
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    hash.pp 1.87 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=false, $content=false) {
    
      # selinux labels differ from one distribution to another
      case $::operatingsystem {
    
        RedHat, CentOS: {
          case $::lsbmajdistrelease {
            '4':     { $postfix_seltype = 'etc_t' }
            '5','6': { $postfix_seltype = 'postfix_etc_t' }
            default: { $postfix_seltype = undef }
          }
        }
    
        default: {
          $postfix_seltype = undef
        }
      }
    
      File {
        mode    => '0600',
        owner   => root,
        group   => root,
        seltype => $postfix_seltype,
      }
    
      if $source != false {
        file {$name:
          ensure  => $ensure,
          source  => $source,
          require => Package['postfix'],
        }
      } elsif $content != false {
        file {$name:
          ensure  => $ensure,
          content => $content,
          require => Package['postfix'],
        }
      } else {
        file {$name:
          ensure  => $ensure,
          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'],
      }
    }