Назад | Перейти на главную страницу

Переход от Vagrant в разработке к шеф-повару в производстве и получение ошибки «FATAL: NoMethodError: undefined method` delete 'for # <Chef :: Role »

Итак, у меня есть набор поваренных книг / ролей, настроенных для работы с бродягой. Сейчас я развертываю приложение и хочу запускать эти идентичные кулинарные книги с помощью chef-solo на моем сервере. Поэтому я просто установил chef-solo (ту же версию, которую я использую с vagrant) и попытался вызвать следующую команду:

sudo chef-solo -c solo.rb -j roles/clusterflunk_dev.json

К сожалению, возникла следующая ошибка:

[Fri, 27 Jul 2012 08:20:28 +0100] INFO: *** Chef 0.10.8 ***
[Fri, 27 Jul 2012 08:20:29 +0100] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[Fri, 27 Jul 2012 08:20:29 +0100] FATAL: NoMethodError: undefined method `delete' for #  <Chef::Role:0x7f6848a05638>

Я не уверен, как одна и та же версия chef даст разные результаты, я явно где-то ошибаюсь. Я использую Ubuntu Server 10.10.

Если вы не можете определить причину проблемы, просмотрев ошибки, я бы предложил обновить chef до текущей версии выпуска (обновить 10.8 до 10.24.4 или, лучше, перейти на 11.x) с помощью omni -установщик.

http://www.opscode.com/chef/install/

curl -L https://www.opscode.com/chef/install.sh | sudo bash

Другие пользователи сообщали об аналогичных ошибках, см. Вот для примера, и существует ряд закрытых фиксированных билетов, связанных с JSON, начиная с Chef 0.10.8