我正在尝试编写一个遍历数组以创建和维护应用程序用户的清单。用户列表通过以下方式从 init.pp 传递到清单:
$app_users = [ at1,et1,at2,et2 ]
users.pp 清单然后读取数组以创建用户:
define appuser {
user { $name:
ensure => 'present',
comment => "Application User - $name",
gid => 'app',
home => "/apps/$app/$name",
shell => '/usr/bin/bash',
}
}
appuser { $app_users: }
该解决方案与我编写的另一个模块配合得很好,但在这种情况下,主目录路径包含一个变量,该变量取决于用户名。
在资源中添加以下 if 语句会引发错误:
if $name =~ /^(et|ep)/ {
$app = "echos"
notice('app is $app')
}
Syntax error at 'if'; expected '}' at .../users.pp:9
我在某处读到您不能在资源中放置 if 语句...
在这种情况下,我有什么选择?我遇到了编码障碍...
我们使用的是 puppet master 版本 2.7.19 (Puppet Enterprise 2.7.0)。