Puppet Class: vault

Defined in:
manifests/init.pp

Overview

Parameters:

  • config (Any)
  • service_location (Any)
  • service_template (Any)
  • url (Any)


1
2
3
4
5
6
7
8
9
10
11
12
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
# File 'manifests/init.pp', line 1

class vault ($config, $service_location, $service_template, $url) {

  ensure_packages(['curl', 'unzip'])

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

  exec { 'retrieve_vault':
    command => "/usr/bin/curl -s ${::vault::url} > /tmp/vault.zip",
    creates => '/tmp/vault.zip',
    require => Package['curl'],
  } ~>
  exec { 'unzip_vault':
    command => '/usr/bin/unzip /tmp/vault.zip -d /opt',
    creates => '/opt/vault',
    require => Package['unzip'],
  } ~>
  file { '/opt/vault':
    mode   => '0755',
    notify => Service['vault'],
  }

  file { '/etc/vault.d': ensure  => directory } ->
  file { '/etc/vault.d/config.json':
    content => $::vault::config,  # TODO: hiera-ize instead of JSON
    mode    => '0644',
    notify  => Service['vault'],
  }

  file { $::vault::service_location:
    ensure  => file,
    content => template($::vault::service_template),  # TODO: check os support
    mode    => '0644',
  } ~>
  service { 'vault':
    ensure  => running,
    enable  => true,
  }

}