Puppet Class: hiera::eyaml

Defined in:
manifests/eyaml.pp

Summary

This class installs and configures hiera-eyaml

Overview

Copyright © 2014 Terri Haber, unless otherwise noted.

Author:

  • Terri Haber <terri@puppetlabs.com>



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'manifests/eyaml.pp', line 13

class hiera::eyaml {
  $eyaml_name    = $hiera::eyaml_name
  $provider      = $hiera::provider
  $eyaml_version = $hiera::eyaml_version
  $eyaml_source  = $hiera::_eyaml_source

  $owner         = $hiera::eyaml_owner
  $group         = $hiera::eyaml_group
  $cmdpath       = $hiera::cmdpath
  $confdir       = $hiera::confdir
  $create_keys   = $hiera::create_keys
  $_keysdir      = $hiera::_keysdir

  $manage_package = $hiera::manage_eyaml_package

  if $manage_package {
    hiera::install { 'eyaml':
      gem_name    => $eyaml_name,
      provider    => $provider,
      gem_version => $eyaml_version,
      gem_source  => $eyaml_source,
    }
    if $create_keys {
      Hiera::Install['eyaml'] {
        before => Exec['createkeys'],
      }
    }
  }

  File {
    owner => $owner,
    group => $group,
  }

  file { $_keysdir:
    ensure => directory,
  }

  $keysdir = dirname($_keysdir)

  if ( $create_keys == true ) {
    exec { 'createkeys':
      user    => $owner,
      cwd     => $keysdir,
      command => 'eyaml createkeys',
      path    => $cmdpath,
      creates => "${_keysdir}/private_key.pkcs7.pem",
      require => File[$_keysdir],
    }

    file { "${_keysdir}/private_key.pkcs7.pem":
      ensure  => file,
      mode    => '0600',
      require => Exec['createkeys'],
    }

    file { "${_keysdir}/public_key.pkcs7.pem":
      ensure  => file,
      mode    => '0644',
      require => Exec['createkeys'],
    }
  }
}