带参数的 Puppet 类

带参数的 Puppet 类

我正在尝试获取一个带有参数的木偶类,以下是我尝试过的

class testing ( String $file = 'testing' ) {
        file { "/tmp/$file":
          ensure => present,
          mode => 0777,
          content => "Testing123"
        }
}

当我运行这个时我收到错误:

Could not parse for environment production: Syntax error at 'String'; expected ')'

答案1

听起来你正在使用 4.0 之前的 puppet 版本,并且没有使用“future”解析器。数据类型是使用新版本的 puppet 语言添加的。

您有 3 个选择:

  1. 删除String。即使在允许声明数据类型的配置中,它也是可选的。在类内部,您可以使用函数来验证参数是否为字符串。
  2. 启用未来解析器。这在你的 puppet 配置文件中完成,你可能会发现你的其他代码不兼容。
  3. 升级到 puppet 4.x 版本。这也可能会导致与您环境的其余部分不兼容。

如果是我的话,我会做#1。

相关内容