2016-01-21 1 views
0

Используя следующие команды я могу получить шеф-оболочку для выполнения, втягивая все мои поваренные книги и сумки данных:Почему атрибуты узла в тестовой кухне генерируют dna.json, которые не включаются в выполнение моего шеф-повара?

kitchen login 
cd /tmp/kitchen 
sudo -E /opt/chef/embedded/bin/chef-zero -d 
sudo knife cookbook upload -a -c client.rb 
sudo knife upload data_bags -c client.rb 
sudo -E /opt/chef/bin/chef-shell -z -c client.rb -j dna.json -o "role-web-server::default" 

Однако, я получаю следующее исключение:

Chef::Exceptions::InvalidDataBagItemID 
-------------------------------------- 
Data Bag items must have an id matching /^[\.\-[:alnum:]_]+$/, you gave: nil 

Cookbook Trace: 
--------------- 
    /tmp/kitchen/cache/cookbooks/chef-vault/libraries/chef_vault_item.rb:44:in `chef_vault_item' 

... other stacktrace... 

значение nil предоставляется функции chef_vault_item, когда у меня есть соответствующее значение, указанное в моем .kitchen.yml, и оно находится в dna.json, которое я передал в шеф-повар. Я знаю, что ценность там, потому что моя обычная «кухня сходится» находит атрибут просто прекрасным.

Почему атрибуты узла в тестовой кухне сгенерированы dna.json не включены в мое выполнение шеф-повара? Я собираюсь все это неправильно, чтобы заставить шеф-повар работать внутри виртуальной машины Test Kitchen?

ответ

0

Опция -z для шеф-повара автоматически не включает системы шеф-повара/локального режима. Это предшествует их связью, -z - это короткая форма --client, которая просто использует конфигурацию в client.rb. Вам нужно будет изменить это, чтобы указать на Chef Zero.

Вы уверены, что имеете в виду, что используете chef-shell? Это похоже на то, что вы хотите использовать chef-client.

+0

Благодарим за быстрый ответ! Я надеялся использовать шеф-повар, чтобы диагностировать, что происходит с некоторыми проблемами, с помощью кулинарной книги повара-клиента, которая зависела от ряда кулинарных книг, с которыми я работаю. Я также пробовал с -S http: // localhost: 8889, и это не сработало. Я лаяю неправильное дерево, пытаясь использовать шеф-повар? Я просто подумал, что это хороший инструмент для интерактивного наблюдения за тем, что происходит в сближении ... –

+0

Вы можете использовать его, но вам нужно перенастроить кучу вещей. Вероятно, проще просто использовать вывод журнала для отслеживания выполнения. – coderanger

+0

Я, наконец, проработал свою проблему без нее через прогон уровня отладки. Прежде чем пометить это как ответ, можете ли вы указать на то, что вам нужно переконфигурировать, чтобы заставить его включать эти атрибуты в запуск шеф-повара? –

Смежные вопросы