2013-08-19 89 views
3

我的安裝文件是這樣的:爲什麼我的木偶無法處理bundle exec?

... 
cd /home/work/package/dea_ng 
... 
bundle install 
export PATH=$PATH:/usr/local/go/bin 
bundle exec rake dir_server:install 

我敢肯定的是,最後的命令可以在我的客戶機上成功運行,但木偶不斷報告「返回1而不是[0]的一個」錯誤。

所以,這裏是安裝清單:

class dea_ng::install { 
    exec { "/bin/bash /home/work/install/dea_ng_install.sh": 
    path=>'/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin', 
    cwd =>'/home/work/install', 
    logoutput => false, 
    require =>Class["dea_ng::dea_ngfile"], 
    before => Class["dea_ng::service"], 
    } 
} 

的問題也發生在我的啓動命令也使用捆綁高管:傀儡後完成dea_ng ::安裝和運行dea_ng ::服務,下面的命令沒有工作,除非我在客戶機上手動執行它。

bundle exec rake dir_server:run[config/dea.yml] & 

我真的很困惑這件事,好像puppet在我的情況下不能很好地處理bundle exec。我在這裏錯過了一些env配置嗎?

--debug的輸出似乎沒有幫助:

Debug: Executing '/bin/bash /home/work/install/dea_ng_install.sh' 
Error: /bin/bash /home/work/install/dea_ng_install.sh returned 1 instead of one of [0] 
Error: /Stage[main]/Dea_ng::Install/Exec[/bin/bash /home/work/install/dea_ng_install.sh]/returns: change from notrun to 0 failed: /bin/bash /home/work/install/dea_ng_install.sh returned 1 instead of one of [0] 

如果我取消已有的捆綁EXEC線,外殼的成功。

+0

你可以用'--debug'模式運行木偶,並在返回1錯誤之前發佈幾位。 – iamauser

+0

您可以向腳本添加打印語句或其他內容以查看每個執行環境中的不同之處嗎? –

+0

@Shakedown你可以給我一些關於這種情況下傀儡世界和現實世界之間可能有什麼不同的提示嗎?我不知道從哪裏開始實際調試。 – harryz

回答

4

真正的錯誤是通過添加輸出=>真正的發現:

couldn't find HOME environment -- expanding `~' 

這是Puppet3一個已知問題,請參閱

https://groups.google.com/forum/#!topic/puppet-users/5sk9mJqe4Z0

所以加HOME ENV解決問題:

environment =>「HOME =/root 「

+0

您應該將其標記爲已接受的答案!只需點擊左上角的綠色複選標記:D –