Defined Type: environment_variable::variable

Defined in:
manifests/variable.pp

Overview

Environment_variable::Variable

Manage an environment variable with Puppet.

Parameters:

  • variable (Any) (defaults to: $title)

    The name of the variable to manage

  • value (Any)

    The value to set the variable to

  • ensure (Enum['present','absent']) (defaults to: present)

    Whether to add or remove the variable



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
# File 'manifests/variable.pp', line 8

define environment_variable::variable (
  $value,
  $variable                         = $title,
  Enum['present','absent'] $ensure  = present,
) {

  case $facts['kernel'] {
    "windows": {
      # progressively build up the path with seperate resources.  if the provider
      # doesn't allow this will have to rewrite to be a concat
      windows_env { $variable:
        ensure    => present,
        value     => $value,
        mergemode => clobber,
      }
    }

    "Linux": {
      $file_ensure = $ensure ? {
        "present" => "file",
        default   => "absent",
      }

      file { "/etc/profile.d/environment_variable__variable__${variable}.sh":
        ensure  => $file_ensure,
        owner   => "root",
        group   => "root",
        mode    => "0644",
        content => "export ${variable}=${value}",
      }
    }

    default: {
      fail("#{module_name} does not support ${facts['os']['family']}")
    }
  }
}