2013-09-16 69 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名稱而不是路徑參數中。如果有人知道爲什麼它不以另一種方式工作,那可能是有益的。