使用Puppet自动化作曲家自我更新

时间:2013-09-16 17:54:49

标签: php composer-php puppet

我全局安装了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身份运行。

2 个答案:

答案 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"]