Puppet Class: deferlib::test

Defined in:
manifests/test.pp

Summary

Samples/Test deferred functions

Overview

Example of deferlib functions

Examples:

include deferlib::test


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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'manifests/test.pp', line 8

class deferlib::test {
  notify { 'deferred':
    message => deferlib::cmd({
        'command'     => 'cat /tmp/message;id',
        'else'        => 'no message',
        'user'        => 'joknarf',
        'environment' => { 'PATH' => '/bin:/sbin' },
    }),
  }

  notify { 'script from module':
    message => deferlib::cmd({
        'command' => file("${module_name}/myscript"),
        'match'   => 'hello',
        'else'    => 'bad output',
    }),
  }

  notify { 'deferlib::if_cmd':
    message => deferlib::if_cmd(file("${module_name}/myscript"), 'exit ok'),
  }

  service { 'cron':
    #ensure => deferlib::unless_file('/tmp/maintenance', 'running'),
    #ensure => deferlib::if_file('/tmp/production', 'running'),
    #ensure => deferlib::if_cmd('false', 'running'),
    #ensure => deferlib::cmd({
    #         command => 'cat /tmp/cron_local_ensure',
    #         else    => 'running',
    #}),
    ensure => 'running',
    noop   => deferlib::if_file('/tmp/flag', true, false),
    #noop   =>deferlib::unless_file('/tmp/flag', false, true),
  }
  # use deferred command output in env variable
  exec { 'env var deferred':
    command     => 'echo "$myvar"',
    provider    => 'shell',
    environment => [deferlib::cmd({
          'command' => 'echo "myvar=$(cat /tmp/msg)"',
    })],
    logoutput   => true,
  }

  $def_val = deferlib::cmd({ 'command' => 'cat /tmp/msg' })
  notify { 'test string':
    message => Deferred('sprintf', ['myvar=%s', $def_val]),
  }
  notify { 'check':
    message => deferlib::if_file('/tmp/ok', 'file found', 'file not found'),
  }
}