2014-05-05 87 views
0

我在CentOS VM上學習Chef + Test Kitchen,看來每次運行kitchen converge時,有些程序包會失敗並拋出相同的錯誤:Chef :: Exceptions :: Exec返回1,預計0

Chef::Exceptions::Exec 
---------------------- 

returned 1, expected 0 

而所有的錯誤都位於package資源。例如:

Compiled Resource: 
------------------ 
# Declared in /tmp/kitchen/cookbooks/nginx/recipes/package.rb:39:in `from_file' 

package("nginx") do 
    action :install 
    retries 0 
    retry_delay 2 
    guard_interpreter :default 
    package_name "nginx" 
    version "1.0.15-5.el6" 
    cookbook_name :nginx 
    recipe_name "package" 
end 

然而,當我使用kitchen login並登錄到虛擬機手動運行

yum install nginx 

它運行只是確定。另外,有時它在第二次運行kitchen converge時安裝得很好。

我的配方文件是:

# create vtapp user 
user node.default['railsapp']['user'] do 
supports :manage_home => true 
system true 
home "/home/#{node.default['railsapp']['user']}" 
shell '/bin/bash' 
end 

# install git 
package 'git' 

# install mysql and run the service 
mysql_service 'default' 

# install redis and run the service 
include_recipe 'redis::server' 

# install rbenv to vtapp user, and install ruby 2.1.0 along with bundler 
include_recipe "ruby_build" 
node.default['rbenv']['user_installs'] = [ 
    { 
     'user' => node.default['railsapp']['user'], 
    'rubies' => ['2.1.0'], 
    'gems' => { 
     '2.1.0' => [ 
     { 'name' => 'bundler' } 
     ] 
    } 
    } 
] 
include_recipe "rbenv::user" 

# install monit 
include_recipe "monit" 

# install nginx 
include_recipe "nginx" 

我錯過了什麼?

+0

1.您是否擁有完整的堆棧跟蹤,而不是'#在/tmp/kitchen/cookbooks/nginx/recipes/package.rb:39:in'from_file''中聲明2.當您評論include_recipe 「nginx」? – giosakti

+0

1.是的,但增加了內存分配(o_O)後,錯誤消失2.如果我對該行進行註釋,其他配方偶爾會在編譯到它們各自的「package」資源時失敗。 –

回答

1

嗯,瘋狂的,因爲它似乎,如下面的鏈接描述後,我增加了流浪的內存分配1024 MB:

https://github.com/test-kitchen/kitchen-vagrant/issues/22

的間歇性問題,上面突然沒了...

更新:

我反覆運行成功充分kitchen test命令後,我增加了內存分配:-)

更新(2):

我已經深入研究更多關於廚師和另一個可能的原因是在超時時間內廚師設置如果我記得正確執行的動作,15分鐘。我使用的可能的解決方案是1)安裝代理服務器以加速下載時間,2)增加互聯網帶寬,3)允許流浪者爲VM分配更多的CPU核心。

您還必須注意應用程序所需的最小內存。例如,我已經安裝了ZenOSS和Chef,至少需要3GB的內存,並且如果我在內存之下分配內存,則會保留上面的錯誤代碼。

+0

對我來說這似乎很奇怪。我會用'-debug'標誌運行chef-client,看看它到底發生了什麼。 –

+0

正如我所說的,某些軟件包會間歇性地失敗,但它總是在調用'package'資源時。儘管我使用了廚師獨奏,這與廚師客戶端一樣嗎? –

相關問題