0

我在使用 Puppet 2.6.7 时遇到了一些奇怪的问题。我有一个使用 shell 脚本作为命令的 exec。另外,我想使用相同的脚本来执行 exec 的“除非”属性,只需传递一个标志来测试一些东西:

exec { "myexec":
  path        => '/bin:/usr/bin',
  command     => "/opt/myapp/script.sh -o ${name}",
  unless      => "/opt/myapp/script.sh -o ${name} -t",
}

我正在使用 puppet 和 puppetmaster。如果我将代码保留为如上所示,我会收到一个错误:“无法评估:找不到命令'/opt/myapp/script.sh'”并且该过程在编译时抛出错误。但是,如果我删除 unless 行,一切都会正确编译。奇怪的是,对于这两个命令来说,命令是相同的,但只是除非抱怨找不到它。

有没有人知道如何解决这个问题或任何解决方法?它是 Puppet 2.6.14 中的错误吗?

谢谢您的帮助!

赫克托。

4

1 回答 1

0

unless在 .之前运行command,这就是为什么您不会收到command. 问题在于path,这是正确的声明:

path => [ '/bin/', '/usr/bin/' ]
于 2013-03-26T00:04:09.660 回答