Defined Type: environment_variable::variable
- Defined in:
- manifests/variable.pp
Overview
Environment_variable::Variable
Manage an environment variable with Puppet.
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 |
# File 'manifests/variable.pp', line 8
define environment_variable::variable (
$value = undef,
$variable = $title,
Enum['present','absent'] $ensure = present,
) {
# Attempt to parse variable name and value from title if it is in the form X=x
if $title =~ /.+=.+/ {
$split = split($title, '=')
$_variable = $split[0]
$_value = $split[1]
} else {
$_variable = $variable
$_value = $value
}
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}=${_value}":
ensure => present,
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']}")
}
}
}
|