Пособие по кулинарным ножам
Пособие — это базовая единица конфигурации и распространения политики. Пособие определяет сценарий и содержит всё необходимое для поддержки этого сценария:
- Рецепты, которые указывают ресурсы для использования и порядок их применения
- Значения атрибутов
- Распределение файлов
- Шаблоны
- Расширения Chef, такие как пользовательские ресурсы и библиотеки
Используйте подкоманду 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 для проверки кулинарной книги на синтаксические ошибки. Этот аргумент использует проверку синтаксиса Ruby для проверки каждого файла в кулинарной книге, заканчивающегося на .rb и встроенного 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/