Почему "роли загрузки ножей" не загружают роли?

Я последовал за OpsCode руководством по быстрому запуску, и все прошло довольно гладко, но теперь я сталкиваюсь с проблемами, которые экспериментируют с ролями. У меня есть "стартер" в моем репо, который был предоставлен OpsCode. Когда я следую первой официальной документации я мог бы найти и запустить следующее из верхней части моего репетира шеф-повара:

knife upload roles

он просто возвращается и ничего не происходит. Я не получаю никакой роли (новой или обновленной) на моем сервере шеф-повара. Следующая строка работает для создания и обновления:

knife role from file .\roles\starter.rb

но я считаю, что это слишком громоздко, и я бы предпочел что-то, что просто подталкивает все мое репо на сервер (или, по крайней мере, все роли), чтобы сделать меня более уверенным в том, что все в актуальном состоянии.

Ответ 1

Да, в этом случае шеф-повар немного непоследователен. Я использую следующие 3 строки, чтобы направить весь репо на chef-сервер (конечно, после того, как тесты прошли):

knife cookbook upload --all
knife role from file roles/*.rb
knife data bag from file --all

Ответ 2

загрузка ножа основана на предыдущем драгоценном камне (теперь он сливается в шеф-поваре под названием chef_fs).

https://github.com/opscode/chef/issues/1641https://github.com/jkeiser/knife-essentials/issues/67) описать проблему: загрузка ножей поддерживает только файлы .json для ролей.

Вот почему ваша команда knife upload ничего не выводит.

Если вы хотите использовать загрузку ножа, вам нужно сначала преобразовать все роли в json (https://gist.github.com/red56/834890)

Ответ 3

Предлагаемое решение от Draco, не помогло мне загрузить data_bags. Вот что я сделал.

knife cookbook upload --all
knife role from file roles/*.rb
knife upload data_bags/