кулинарная книга ножей
Кулинарная книга — это базовая единица конфигурации и распространения политик в Chef Infra.
Кулинарная книга определяет сценарий и содержит всё необходимое для поддержки этого сценария:
- Рецепты, указывающие, какие встроенные ресурсы Chef Infra использовать и в каком порядке их применять
- Значения атрибутов, которые позволяют настраивать конфигурацию в зависимости от среды, например,
devилиprodution. - Пользовательские ресурсы для расширения возможностей Chef Infra за пределы встроенных ресурсов.
- Файлы и шаблоны для распространения информации на системы.
- Пользовательские плагины Ohai для расширения сбора конфигурации системы за пределы стандартных значений Ohai.
- Файл
metadata.rb, описывающий саму кулинарную книгу и все зависимости, от которых она может зависеть.
Используйте подкоманду knife cookbook для взаимодействия с кулинарными книгами, расположенными на сервере Chef Infra или в локальном chef-repo.
Примечание
удаление множества
Используйте аргумент bulk delete для удаления файлов кулинарной книги, которые соответствуют шаблону, определённому с помощью регулярного выражения. Регулярное выражение должно быть заключено в кавычки и не должно быть окружено слэшами (/).
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook bulk delete REGEX (options)
Параметры
Этот аргумент имеет следующие параметры:
-
-p,--purge -
Полностью удаляет кулинарную книгу (или версию кулинарной книги) с сервера Chef Infra. Используйте этот параметр с осторожностью, так как на сервере Chef Infra хранится только один экземпляр любого файла. Вследствие этого удаление кулинарной книги деактивирует любые другие кулинарные книги, которые ссылаются на один или несколько файлов из удалённой кулинарной книги.
Примечание
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Удалить множество кулинарных книг
Используйте регулярное выражение для определения шаблона, используемого для удаления множества кулинарных книг:
knife cookbook bulk delete "^[0-9]{3}$" -p
удалить
Используйте аргумент delete для удаления указанной кулинарной книги или версии кулинарной книги на сервере Chef Infra (а не локально).
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook delete COOKBOOK_NAME [COOKBOOK_VERSION] (options)
Параметры
Этот аргумент имеет следующие параметры:
-
-a,--all -
Удалить все кулинарные книги (и версии кулинарных книг).
COOKBOOK_VERSION-
Версия кулинарной книги, которая должна быть удалена. Если у кулинарной книги всего одна версия, этот параметр указывать не нужно. Если у кулинарной книги более одной версии, и этот параметр не указан, knife запросит версию.
-
-p,--purge -
Полностью удаляет кулинарную книгу (или версию кулинарной книги) с сервера Chef Infra. Используйте этот параметр с осторожностью, так как на сервере Chef Infra хранится только один экземпляр любого файла. Вследствие этого удаление кулинарной книги деактивирует любые другие кулинарные книги, которые ссылаются на один или несколько файлов из удалённой кулинарной книги.
Примечание
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Удалить кулинарную книгу
knife cookbook delete cookbook_name version
Например:
knife cookbook delete smartmon 0.8
Введите Y для подтверждения удаления.
скачать
Используйте аргумент download для загрузки кулинарной книги с сервера Chef Infra в текущую рабочую директорию.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook download COOKBOOK_NAME [COOKBOOK_VERSION] (options)
Параметры
Этот аргумент имеет следующие параметры:
-
-d DOWNLOAD_DIRECTORY,--dir DOWNLOAD_DIRECTORY -
Директория, в которой находятся кулинарные книги.
-
-f,--force -
Перезаписать существующую директорию.
-
-N,--latest -
Загрузить последнюю версию кулинарной книги.
Примечание
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Скачать кулинарную книгу
Для загрузки кулинарной книги с именем smartmon, введите:
knife cookbook download smartmon
список
Используйте аргумент list для просмотра списка кулинарных книг, которые в настоящее время доступны на сервере Chef Infra. По умолчанию в списке будет отображаться только последняя версия каждой кулинарной книги.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook list (options)
Параметры
Этот аргумент имеет следующие параметры:
-
-a,--all -
Возвращает все доступные версии каждой кулинарной книги.
-
-w,--with-uri -
Показать соответствующие URI.
Примечание
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Просмотр списка кулинарных книг
Для просмотра списка кулинарных книг:
knife cookbook list
метаданные
Используйте аргумент metadata для генерации метаданных для одной или нескольких кулинарных книг.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook metadata (options)
Параметры
Этот аргумент имеет следующие параметры:
-
-a,--all -
Сгенерировать метаданные для всех кулинарных книг.
-
-o PATH:PATH,--cookbook-path PATH:PATH -
Директория, в которой создаются кулинарные книги. Это может быть путь, разделённый двоеточием.
Примечание
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Генерация метаданных
knife cookbook metadata -a
метаданные из файла
Используйте аргумент metadata from file для загрузки метаданных кулинарной книги из файла.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook metadata from file FILE
Параметры
У этой команды нет специфических параметров.
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Просмотр метаданных
knife cookbook metadata from file /path/to/file
показать
Используйте аргумент show для просмотра информации о кулинарной книге, её частях (атрибуты, определения, файлы, библиотеки, поставщики, рецепты, ресурсы и шаблоны) или файле, связанном с кулинарной книгой (включая такие атрибуты, как контрольная сумма или специфичность).
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook show COOKBOOK_NAME [COOKBOOK_VERSION] [PART...] [FILE_NAME] (options)
Параметры
Этот аргумент имеет следующие параметры:
COOKBOOK_VERSION-
Версия кулинарной книги, которую нужно показать. Если у кулинарной книги всего одна версия, этот параметр указывать не нужно. Если у кулинарной книги более одной версии, и этот параметр не указан, возвращается список версий кулинарных книг.
-
-f FQDN,--fqdn FQDN -
FQDN хоста.
FILE_NAME-
Имя файла, связанного с кулинарной книгой.
-
-p PLATFORM,--platform PLATFORM -
Платформа, для которой предназначена кулинарная книга.
PART-
Часть кулинарной книги для отображения:
attributes,definitions,files,libraries,providers,recipes,resources, илиtemplates. Можно указать более одной части. -
-V PLATFORM_VERSION,--platform-version PLATFORM_VERSION -
Версия платформы.
-
-w,--with-uri -
Показать соответствующие URI.
Примечание
Примеры
В следующих примерах показано, как использовать эту подкоманду knife:
Показать данные кулинарной книги
Для получения списка доступных версий кулинарной книги с именем getting-started, введите:
knife cookbook show getting-started
что вернёт что-то вроде:
getting-started 0.3.0 0.2.0
Показать версии кулинарной книги
Для показа списка данных о кулинарной книге, используя имя кулинарной книги и версию, введите:
knife cookbook show getting-started 0.3.0
что вернёт что-то вроде:
attributes:
checksum: fa0fc4abf3f6787aeb5c3c5c35de667c
name: default.rb
path: attributes/default.rb
specificity: default
url: https://somelongurlhere.com
chef_type: cookbook_version
cookbook_name: getting-started
definitions: []
files: []
frozen?: false
json_class: Chef::CookbookVersion
libraries: []
Показать версию кулинарной книги
Для просмотра только данных о шаблонах, введите:
knife cookbook show getting-started 0.3.0 templates
что вернёт что-то вроде:
checksum: a29d6f254577b830091f140c3a78b1fe
name: chef-getting-started.txt.erb
path: templates/default/chef-getting-started.txt.erb
specificity: default
url: https://someurlhere.com
Показать данные кулинарной книги в формате JSON
Для просмотра информации в формате JSON используйте общую опцию -F в командной строке следующим образом:
knife cookbook show devops -F json
Другие доступные форматы включают text, yaml, и pp.
test
Используйте аргумент test для проверки кулинарной книги на синтаксические ошибки. Этот аргумент использует проверку синтаксиса Ruby для проверки каждого файла в кулинарной книге, заканчивающегося на .rb и Embedded Ruby (ERB). Этот аргумент будет учитывать файлы chefignore при определении кулинарных книг, которые необходимо проверить на синтаксические ошибки.
Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook test COOKBOOK_NAME (options)
Параметры
Этот аргумент имеет следующие параметры:
-
-a,--all -
Проверить все кулинарные книги.
-
-o PATH:PATH,--cookbook-path PATH:PATH -
Директория, в которой создаются кулинарные книги. Путь может быть разделен двоеточием.
Примечание
Примеры
Следующие примеры показывают, как использовать эту подкоманду knife:
Проверка кулинарной книги
knife cookbook test cookbook_name
загрузка
Используйте аргумент upload для загрузки одной или нескольких кулинарных книг (и всех связанных с ними файлов) из локального хранилища на сервер Chef Infra. Будут загружены только те файлы, которых еще нет на сервере Chef Infra.
Примечание
File.fnmatch). Примечание
.keep, — чтобы убедиться, что директория не пуста. Синтаксис
Этот аргумент имеет следующий синтаксис:
knife cookbook upload [COOKBOOK_NAME...] (options)
Параметры
Этот аргумент имеет следующие параметры:
-
-a,--all -
Загрузить все кулинарные книги.
--concurrency-
Количество разрешенных одновременных соединений. По умолчанию:
10. -
-d,--include-dependencies -
Обеспечить, чтобы при наличии у кулинарной книги зависимости от одной (или нескольких) кулинарных книг, эти кулинарные книги также были загружены.
-
-E ENVIRONMENT,--environment ENVIRONMENT -
Используется для установки зависимости версии среды к версии кулинарной книги, которая загружается.
--force-
Обновить кулинарную книгу даже если флаг
--freezeбыл установлен. --freeze-
Требуется, чтобы изменения в кулинарной книге были включены в качестве новой версии. Только опция
--forceможет переопределить это значение. -
-o PATH:PATH,--cookbook-path PATH:PATH -
Директория, в которой создаются кулинарные книги. Путь может быть разделен двоеточием.
Примечание
Примеры
Следующие примеры показывают, как использовать эту подкоманду knife:
Загрузка кулинарной книги
knife cookbook upload cookbook_name
Заморозка кулинарной книги
Чтобы загрузить кулинарную книгу и предотвратить возможность внесения в неё изменений другими пользователями, введите:
knife cookbook upload redis --freeze
чтобы получить что-то вроде:
Uploading redis...
Upload completed
Если кулинарная книга заморожена, и опция --force не указана, knife вернёт сообщение об ошибке, подобное следующему:
Uploading redis...
ERROR: Version 0.1.6 of cookbook redis is frozen. Use --force to override.
© 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_cookbook/