В частности, если я нахожусь на стадии подготовки, мне нужен каталог A, а в QA - каталог B:
file{'/etc/appenv':
ensure => file,
owner => 'root',
group => 'root',
mode => 0644,
source => "file:///puppet/modules/myapp/appenv-${env}",
}
У меня есть только 1 машина, которой сейчас нужен этот конкретный env. я прочитал Puppet: лучшие практики переопределения переменных, но я думал, что для этой цели должны использоваться ступени.
Вместо $ {env} попробуйте использовать $ {environment} в соответствии с официальная документация.
Если вы хотите изменить другую переменную в зависимости от среды, вы можете сделать это с помощью условного оператора / оператора case / селектора:
$dir = ${environment} ? {
'staging' =>'A',
'QA' => 'B',
default => 'unknown',
}
file{'/etc/appenv':
ensure => file,
owner => 'root',
group => 'root',
mode => 0644,
source => "file:///puppet/modules/myapp/${dir}/appenv",
}