Почему "роли загрузки ножей" не загружают роли?
Я последовал за 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/1641 (и https://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/