2013-09-16 68 views
4

我有PHP的作曲家安装在全球,我试图让Puppet自动运行作曲家自更新命令。使用Puppet自动更新作曲家自我更新

这里是我的清单:

exec { "composer self-update": 
    path => '/usr/local/bin/' 
} 

暗战 “在/ usr/local/bin目录/作曲家自我更新” 为根手工作品,但木偶运行时它生成此错误:

change from notrun to 0 failed: /usr/bin/env: php: No such file or directory

我不知道为什么手动行为与Puppet行为不同。

此外,我有Puppet作为根运行。

回答

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

1

我能够通过更改exec来自己解决它。我不知道为什么有差异,但这是有效的:

exec { "/usr/local/bin/composer self-update":} 

注意不同之处在于路径包含在exec名称而不是路径参数中。如果有人知道为什么它不以另一种方式工作,那可能是有益的。