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Версия кулинарной книги (cookbook), которую необходимо загрузить.
--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/