Итак, у меня есть набор поваренных книг / ролей, настроенных для работы с бродягой. Сейчас я развертываю приложение и хочу запускать эти идентичные кулинарные книги с помощью 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