我在全球范围内安装了PHP的作曲家,我正在尝试让Puppet自动运行作曲家自我更新命令。
这是我的清单:
exec { "composer self-update":
path => '/usr/local/bin/'
}
以 root 身份运行"/usr/local/bin/composer self-update"手动工作,但是当 puppet 运行时它会生成此错误:
从 notrun 更改为 0 失败:/usr/bin/env: php: 没有这样的文件或目录
我不知道为什么手动行为与木偶行为不同。
另外,我有木偶作为根运行。
按照你编写的方式运行应该有效。不过,您可以使用 command
参数:
exec { "do_some_update" :
command => "composer self-update",
path => "/usr/local/bin",
}
这样,如果需要,您可以在以后引用exec
:
file { "configuration" :
require => Exec["do_some_update"]
}
而不是打字Exec["/usr/local/bin/composer self-update"]
我能够通过更改可执行文件自己解决它。我不确定为什么会有区别,但这有效:
exec { "/usr/local/bin/composer self-update":}
请注意,不同之处在于路径包含在可执行文件名称中,而不是路径参数中。如果有人知道为什么它没有以另一种方式工作,那可能会有所帮助。