Chef::Exceptions::Exec вернул 1, ожидал 0

В настоящее время я изучаю Chef + Test Kitchen на виртуальной машине CentOS, и кажется, что каждый раз, когда я запускаю kitchen converge, некоторые пакеты терпят неудачу и выдают одну и ту же ошибку:

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"

Я что-то пропустил?


person Ismail Faruqi    schedule 05.05.2014    source источник
comment
1. есть ли у вас полная трассировка стека, кроме ` # Объявлено в /tmp/kitchen/cookbooks/nginx/recipes/package.rb:39:in from_file' 2. работает ли это, когда вы комментируете include_recipe "nginx" ?   -  person giosakti    schedule 05.05.2014
comment
1. Да, но ошибка вышла после того, как я увеличил выделение памяти (o_O) 2. Если я прокомментирую эту строку, другие рецепты иногда будут давать сбой при компиляции в соответствующий ресурс package.   -  person Ismail Faruqi    schedule 05.05.2014


Ответы (1)


Что ж, как ни странно, после того, как я увеличил выделение памяти для Vagrant до 1024 МБ, как описано в ссылке ниже:

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

Периодическая проблема выше внезапно исчезла...

обновление:

Я неоднократно успешно запускал полную команду kitchen test после того, как увеличил выделение памяти :-)

обновление (2):

Я больше покопался в Chef, и еще одна возможная причина — тайм-аут, установленный в Chef для выполнения действия, 15 минут, если я правильно помню. Возможные решения, которые я использовал: 1) Установка прокси-сервера для ускорения загрузки, 2) Увеличение пропускной способности Интернета, 3) Разрешение бродяге выделять больше ядер ЦП для виртуальной машины.

Вы также должны обратить внимание на минимальный объем памяти, необходимый для приложения. Например, я установил ZenOSS с Chef, для которого требуется как минимум 3 ГБ памяти, и продолжал сбой с кодом ошибки, указанным выше, если я выделял память меньше этого.

person Ismail Faruqi    schedule 05.05.2014
comment
Мне это кажется странным. Я бы запустил шеф-клиент с флагом -debug, чтобы увидеть, где именно он терпит неудачу. - person Christopher Armstrong; 07.05.2014
comment
Как я уже сказал, некоторые пакеты время от времени дают сбой, но всегда при вызове ресурса package. Я использовал шеф-соло, но с шеф-клиентом то же самое? - person Ismail Faruqi; 07.05.2014