Spec-Zone.ru › Chef 16

Пособие по кулинарным ножам

[править на GitHub]

Пособие — это базовая единица конфигурации и распространения политики. Пособие определяет сценарий и содержит всё необходимое для поддержки этого сценария:

  • Рецепты, которые указывают ресурсы для использования и порядок их применения
  • Значения атрибутов
  • Распределение файлов
  • Шаблоны
  • Расширения Chef, такие как пользовательские ресурсы и библиотеки

Используйте подкоманду knife cookbook для взаимодействия с пособиями, расположенными на сервере Chef Infra или в локальном хранилище chef-repo.

Примечание

Просмотрите список общих опций, доступных для этой (и всех) подкоманд и плагинов knife.

массовое удаление

Используйте аргумент bulk delete для удаления файлов пособия, соответствующих шаблону, определённому регулярным выражением. Регулярное выражение должно быть заключено в кавычки и не должно быть окружено слэшами (/).

Синтаксис

Этот аргумент имеет следующий синтаксис:

knife cookbook bulk delete REGEX (options)

Опции

Этот аргумент имеет следующие опции:

-p, --purge

Полностью удаляет пособие (или версию пособия) с сервера Chef Infra. Используйте эту операцию осторожно, так как на сервере Chef Infra хранится только одна копия любого файла. Вследствие этого, удаление пособия отключает любое другое пособие, которое ссылается на один или несколько файлов из удалённого пособия.

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определённые опции knife в качестве настроек в файл config.rb.

Примеры

Следующие примеры демонстрируют использование этой подкоманды 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 хранится только одна копия любого файла. Вследствие этого, удаление пособия отключает любое другое пособие, которое ссылается на один или несколько файлов из удалённого пособия.

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определённые опции knife в качестве настроек в файл config.rb.

Примеры

Следующие примеры демонстрируют использование этой подкоманды 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

Загрузить последнюю версию пособия.

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определённые опции knife в качестве настроек в файл config.rb.

Примеры

Следующие примеры демонстрируют использование этой подкоманды knife:

Загрузка пособия

Для загрузки пособия под названием smartmon, введите:

knife cookbook download smartmon

список

Используйте аргумент list для просмотра списка пособий, которые в настоящее время доступны на сервере Chef Infra. По умолчанию в списке будет отображаться только последняя версия каждого пособия.

Синтаксис

Этот аргумент имеет следующий синтаксис:

knife cookbook list (options)

Опции

Этот аргумент имеет следующие опции:

-a, --all

Возвратить все доступные версии для каждого пособия.

-w, --with-uri

Показать соответствующие URI.

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определённые опции knife в качестве настроек в файл config.rb.

Примеры

Следующие примеры демонстрируют использование этой подкоманды knife:

Просмотр списка пособий

Для просмотра списка пособий:

knife cookbook list

метаданные

Используйте аргумент metadata для генерации метаданных для одного или нескольких пособий.

Синтаксис

Этот аргумент имеет следующий синтаксис:

knife cookbook metadata (options)

Опции

Этот аргумент имеет следующие опции:

-a, --all

Сгенерировать метаданные для всех пособий.

-o PATH:PATH, --cookbook-path PATH:PATH

Директория, в которой создаются пособия. Это может быть путь, разделённый двоеточием.

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определённые опции knife в качестве настроек в файл config.rb.

Примеры

Следующие примеры демонстрируют использование этой подкоманды 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.

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определённые опции knife в качестве настроек в файл config.rb.

Примеры

Следующие примеры демонстрируют использование этой подкоманды 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 при определении кулинарных книг, которые нужно проверить на синтаксические ошибки.

Предупреждение

Эта функция устарела и рекомендуется использовать Cookstyle и ChefSpec

Синтаксис

Этот аргумент имеет следующий синтаксис:

knife cookbook test COOKBOOK_NAME (options)

Параметры

Этот аргумент имеет следующие параметры:

-a, --all

Проверить все кулинарные книги.

-o PATH:PATH, --cookbook-path PATH:PATH

Директория, в которой создаются кулинарные книги. Это может быть путь, разделенный двоеточием.

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определённые параметры knife в качестве настроек в файл config.rb.

Примеры

В следующих примерах показано, как использовать эту подкоманду knife:

Проверка кулинарной книги

knife cookbook test cookbook_name

Загрузка

Используйте аргумент upload для загрузки одной или нескольких кулинарных книг (и любых файлов, связанных с этими кулинарными книгами) из локального хранилища на сервер Chef Infra. Будут загружены только файлы, которых ещё нет на сервере Chef Infra.

Примечание

Используйте файл chefignore, чтобы предотвратить загрузку определенных файлов и типов файлов, таких как временные файлы или файлы, помещенные в папки системами управления версиями. Файл chefignore должен располагаться в корне хранилища кулинарных книг и должен использовать правила, аналогичные шаблонному сопоставлению имён файлов (как определено в синтаксисе Ruby File.fnmatch).

Примечание

Пустые каталоги на сервер Chef Infra не загружаются. Чтобы загрузить пустую директорию, создайте файл «точка» — например, .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

Директория, в которой создаются кулинарные книги. Это может быть путь, разделенный двоеточием.

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определённые параметры knife в качестве настроек в файл config.rb.

Примеры

В следующих примерах показано, как использовать эту подкоманду 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API