我全局安装了PHP的作曲家,我正在尝试让Puppet自动运行composer self-update命令。
这是我的清单:
exec { "composer self-update":
path => '/usr/local/bin/'
}
以root身份手动运行“/ usr / local / bin / composer self-update”,但是当puppet运行时会产生此错误:
从notrun更改为0失败:/ usr / bin / env:php:没有这样的文件或目录
我不知道为什么手动行为与Puppet行为有所不同。
另外,我让Puppet以root身份运行。
答案 0 :(得分:1)
我能够通过改变执行官来解决这个问题。我不确定为什么会有区别,但这有效:
exec { "/usr/local/bin/composer self-update":}
注意区别在于路径包含在exec名称中而不是path参数中。如果有人知道为什么它不起作用,那可能会提供信息。
答案 1 :(得分:1)
以你写的方式运行应该有效。不过,您可以使用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"]