傀儡仅逻辑表达式



我正在尝试基于Facter变量为Windows Server设置Puppet exec资源。但是,看起来onlyif只接受命令文件,不接受内联表达式。

有人可以帮我onlyif设置这个表达式吗(作为条件表达式或内联 dos 命令(

exec { 'C:Usersvalidate.cmd validate':
  onlyif   =>  "$validate_enabled" == true,   => This not recognized as command
  provider => powershell,
}

提前谢谢。

这里有几个问题。首先是onlyif的语法不正确。该属性执行命令并检查是否成功,因此您需要将其更改为此命令以删除 Puppet 字符串和 shell 语法问题:

exec { 'C:Usersvalidate.cmd validate':
  onlyif   => $validate_enabled,
  provider => powershell,
}

请注意我编写的第一部分(执行命令(。您不希望在此实例中执行命令。您想要检查布尔事实事实的值。因此,您将使用 Puppet DSL 而不是 shell 命令来检查这一点。

事实3/木偶4:

# use fact hash
if $facts['validate_enabled'] {
  exec { 'C:Usersvalidate.cmd validate': provider => powershell }
}

事实2/木偶3:

# specify global variable for safety
if $::validate_enabled {
  exec { 'C:Usersvalidate.cmd validate': provider => powershell }
}

这将修复您的条件并为您提供所需的行为。

相关内容

  • 没有找到相关文章

最新更新