具体来说,如果我在 staging 中,我需要目录 A,而在 QA 中,我需要目录 B:
file{'/etc/appenv':
ensure => file,
owner => 'root',
group => 'root',
mode => 0644,
source => "file:///puppet/modules/myapp/appenv-${env}",
}
目前我只有 1 台机器需要这个特定的环境。我已阅读Puppet:变量覆盖最佳实践,但我认为阶段应该用于此目的。
答案1
不要使用 ${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",
}