将需要添加到 Puppet 中的默认资源中

将需要添加到 Puppet 中的默认资源中

我正在尝试向 Puppet 中的用户默认资源添加一个要求:

User { require => Mount['/home'] }

使用 Puppet 0.25 时出现以下错误:

错误:无法从远程服务器检索目录:服务器上的错误 400:'+>' 处的语法错误;节点 ip-bar.internal 上的 /home/rpinson/puppetmaster/manifests/foo.pp:71 处的预期为 '}'

有办法实现这个吗?

答案1

在这种情况下,利用定义资源而不是资源默认值可能会更容易。

define myuser (
  ... # you certainly need the rest of the user attribute.
) {
  user { $name:
    require => Mount['/home'],
    ... # and the rest of your attributes.
  }
}

如果您声明 myuser{'johndoe': },那么它也应该具有 mount 作为要求。

答案2

使用资源收集器:

User <| |> {
    require +> Mount['/home'],
}

这增加了对所有用户实例的要求,但也有实现任何虚拟用户的副作用。

据我记得,0.25 版本支持此功能。

此外,+>运算符不能用于常规参数定义,只能用于覆盖或收集器。请将其替换为=>

相关内容