knife diff
Используйте подкоманду knife diff для сравнения различий между файлами и каталогами на сервере Chef Infra и в репозитории chef-repo. Например, чтобы сравнить файлы на сервере Chef Infra перед загрузкой или скачиванием файлов с помощью подкоманд knife download и knife upload, или чтобы убедиться, что определённые файлы в нескольких производственных средах одинаковы. Эта подкоманда похожа на команду git diff, которая может использоваться для сравнения содержимого chef-repo с синхронизированным git-репозиторием.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
knife diff [PATTERN...] (options)
Параметры
Примечание
Эта подкоманда имеет следующие параметры:
--chef-repo-path PATH-
Путь к репозиторию chef-repo. Этот параметр переопределит значение по умолчанию для пути к репозиторию chef-repo. По умолчанию: то же значение, что и в
chef_repo_pathв client.rb. --cookbook-version VERSION-
Версия кулинарной книги для скачивания.
--concurrency-
Количество разрешённых одновременных подключений. По умолчанию:
10. --diff-filter=[(A|D|M|T)...[*]]-
Выбрать только файлы, которые были добавлены (
A), удалены (D), изменены (M) и/или у которых изменился тип (T). Может использоваться любая комбинация символов фильтра, включая отсутствие символов фильтра. Используйте*для выбора всех путей, если файл соответствует другим критериям сравнения. Значение по умолчанию:nil. --name-only-
Показать только имена изменённых файлов.
--name-status-
Показать только имена файлов со статусом
Added,Deleted,Modified, илиType Changed. --no-recurse-
Использовать
--no-recurseдля отключения рекурсивного отображения каталогов. По умолчанию:--recurse. --repo-mode MODE-
Макет локального chef-repo. Возможные значения:
static,everything, илиhosted_everything. Используйтеstaticдля отображения только ролей, сред, кулинарных книг и мешков данных. По умолчанию,everythingиhosted_everythingдинамически выбираются в зависимости от типа сервера. По умолчанию:everything/hosted_everything.
Примечание
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Сравнение файлов, содержащих данные JSON
Для сравнения роли base.json с ролью webserver.json введите:
knife diff roles/base.json roles/webserver.json
Сравнение chef-repo и сервера
Чтобы сравнить различия между локальным chef-repo и файлами на сервере Chef Infra, введите:
knife diff
Сравнение, затем вывод результатов
Чтобы сравнить узел с именем node-lb и затем вывести только файлы, которые были добавлены, удалены, изменены или изменены, введите:
knife diff --name-status node-lb
чтобы получить результат примерно такого вида:
node-lb/recipes/eip.rb
node-lb/recipes/heartbeat-int.rb
node-lb/templates/default/corpsite.conf.erb
node-lb/files/default/wildcard.node.com.crt
node-lb/files/default/wildcard.node.com.crt-2009
node-lb/files/default/wildcard.node.com.key
node-lb/.gitignore
node-lb/Rakefile
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/knife_diff/