如何在环境之间更改 Puppet 中的单个变量

如何在环境之间更改 Puppet 中的单个变量

具体来说,如果我在 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",
}

相关内容