chef (исполняемый файл)
Исполняемый файл chef — это командная утилита, которая выполняет следующие действия:
- Генерирует репозитории, кулинарные книги, рецепты, атрибуты, шаблоны и пользовательские ресурсы.
- Устанавливает gem в среду разработки Chef с установленной Ruby.
chef capture
Используйте подкоманду chef capture для захвата состояния узла в качестве локального chef-repo. Используйте сгенерированный репозиторий, если вам нужно выполнить сведение узла локально.
Синтаксис
Данная подкоманда имеет следующий синтаксис:
chef capture NODE-NAME [options]
Параметры
-
-c,--credentials -
Файл с учетными данными (по умолчанию $HOME/.chef/credentials).
-
-d,--with-data-bags -
Загрузить все пакеты данных как часть захвата узла.
-
-h,--help -
Показать справку по команде.
-
-k,--client-key -
Ключ клиента API сервера Chef Infra.
-
-n,--client-name -
Имя клиента API сервера Chef Infra.
-
-o,--ssl-no-verify -
Не проверять SSL при подключении к серверу Chef Infra (по умолчанию: проверять).
-
-p,--profile -
Профиль для использования из файла учетных данных (по умолчанию «default»).
-
-s,--chef-server-url -
URL сервера Chef Infra.
Примеры
Захват узла
Для захвата узла в локальном репозитории выполните команду, аналогичную следующей:
chef capture test-server
Это вернёт результат, похожий на:
- Setting up local repository
- Capturing node object 'test-server'
- Capturing policy data...
- Capturing cookbook artifacts...
- Writing kitchen configuration...
Repository has been created in './node-test-server-repo'.
Next, locate version-controlled copies of the cookbooks. This is
important so that you can track changes to the cookbooks as you
edit them. You may have one or more existing paths where you have
checked out cookbooks. If not, now is a good time to open a
separate terminal and clone or check out the cookbooks.
If all cookbooks are not available in the same base location,
you will have a chance to provide additional locations.
Press Enter to Continue:
You're ready to begin!
Start with 'cd ./node-test-server-repo; kitchen converge'.
As you identify issues, you can modify cookbooks in their
original checkout locations or in the repository's cookbooks
directory and they will be picked up on subsequent runs
of 'kitchen converge'.
Дополнительную информацию об обновлении Chef Infra Client см. в документации Upgrade Lab.
chef env
Используйте подкоманду chef env для настройки среды для Chef Workstation.
Синтаксис
Данная подкоманда имеет следующий синтаксис:
chef env
Параметры
Эта команда не имеет специфических параметров.
Примеры
Нет.
chef exec
Используйте подкоманду chef exec для выполнения произвольных команд оболочки с переменной среды PATH и переменными среды Ruby GEM_HOME и GEM_PATH, указывающими на Chef Workstation.
Синтаксис
Данная подкоманда имеет следующий синтаксис:
chef exec SYSTEM_COMMAND (options)
Параметры
Данная подкоманда имеет следующие параметры:
-
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef gem
Подкоманда chef gem — это оболочка вокруг команды gem в RubyGems и используется Chef для установки RubyGems в среду разработки Chef Workstation. Все плагины knife, драйверы для Kitchen и другие Ruby-приложения, которые не упакованы в Chef Workstation, будут установлены в путь .Chef Workstation в домашнем каталоге: ~/.Chef Workstation/gem/ruby/ver.si.on/bin (где ver.si.on — версия Ruby, упакованная в Chef Workstation).
Синтаксис
Данная подкоманда имеет следующий синтаксис:
chef gem GEM_COMMAND GEM_OPTIONS (options)
Параметры
Данная подкоманда имеет следующие параметры:
-
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Показать существующий gem в Chef Workstation
Для отображения gem выполните команду, подобную:
chef gem list cookstyle
что вернёт результат, подобный:
*** LOCAL GEMS ***
cookstyle (5.20.0)
Список всех локальных gem
Для отображения всех установленных gem в вашей среде разработки используйте команду list без аргументов:
chef gem list
Поиск локальных gem
Команда list также может использоваться для поиска установленных локально gem. Например, чтобы отобразить все gem, содержащие knife в названии:
chef gem list knife
что вернёт следующий вывод:
*** LOCAL GEMS ***
knife-opc (0.3.2)
knife-windows (1.9.0)
Поиск удалённых gem
Используйте команду search для поиска удалённых gem, доступных для установки:
chef gem search kitchen
что вернёт результат, похожий на:
*** REMOTE GEMS ***
chefkitchen_cli (0.0.1)
gst-kitchen (0.9.0)
guard-kitchen (0.0.2)
jackal-kitchen (0.1.2)
jackal-kitchen-slack (0.1.2)
kitchen (0.0.3)
Установка gem
Для установки gem выполните команду, подобную:
chef gem install knife-config
что вернёт результат, похожий на:
Successfully installed knife-config-1.1.0
1 gem installed
Удаление gem
Для удаления gem из среды Chef Workstation выполните команду:
chef gem uninstall knife-config
что вернёт результат, похожий на:
Successfully uninstalled knife-config-1.1.0
Просмотр содержимого gem
Для просмотра содержимого gem выполните команду, подобную:
chef gem content knife-config
что вернёт результат, похожий на:
/Users/user/.chefdk/gem/ruby/2.1.0/gems/knife-config-1.1.0/LICENSE
/Users/user/.chefdk/gem/ruby/2.1.0/gems/knife-config-1.1.0/README.md
/Users/user/.chefdk/gem/ruby/2.1.0/gems/knife-config-1.1.0/lib/chef/knife/config.rb
/Users/user/.chefdk/gem/ruby/2.1.0/gems/knife-config-1.1.0/lib/knife-config.rb
chef generate attribute
Используйте подкоманду chef generate attribute для генерации файла атрибута в каталоге /attributes.
Синтаксис
Данная подкоманда имеет следующий синтаксис:
chef generate attribute COOKBOOK_PATH NAME (options)
Параметры
Данная подкоманда имеет следующие параметры:
-
-g GENERATOR_COOKBOOK_PATH,--generator-cookbook GENERATOR_COOKBOOK_PATH -
Путь к кулинарной книге с именем
code_generator. Эта кулинарная книга используется подкомандамиchef generateдля генерации кулинарных книг, файлов кулинарных книг, шаблонов, файлов атрибутов и т.д. Значение по умолчанию:lib/chef-dk/skeletons, в которой находится стандартная кулинарная книгаcode_generator, включенная в Chef Workstation. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Создание атрибута
Для генерации атрибута выполните команду, подобную:
chef generate attribute /path/to/cookbook FOO
что вернёт результат, похожий на:
Recipe: code_generator::attribute
* directory[/Users/grantmc/chef-repo/cookbooks/chef-repo/attributes] action create
- create new directory /Users/grantmc/chef-repo/cookbooks/chef-repo/attributes
* template[/Users/grantmc/chef-repo/cookbooks/chef-repo/attributes/FOO.rb] action create
- create new file /Users/grantmc/chef-repo/cookbooks/chef-repo/attributes/FOO.rb
chef generate cookbook
Используйте подкоманду chef generate cookbook для генерации кулинарной книги.
Примечание
-) является допустимым символом и может использоваться в именах кулинарных книг и пользовательских ресурсов, но не рекомендуется. Chef Infra Client вернёт ошибку, если дефис не преобразуется в нижнее подчеркивание (_) при ссылке на имя пользовательского ресурса в рецепте, содержащем дефис.Синтаксис
Данная подкоманда имеет следующий синтаксис:
chef generate cookbook COOKBOOK_PATH/COOKBOOK_NAME (options)
Параметры
Данная подкоманда имеет следующие параметры:
-
-g GENERATOR_COOKBOOK_PATH,--generator-cookbook GENERATOR_COOKBOOK_PATH -
Путь к кулинарной книге с именем
code_generator. Эта кулинарная книга используется подкомандамиchef generateдля генерации кулинарных книг, файлов кулинарных книг, шаблонов, файлов атрибутов и т.д. Значение по умолчанию:lib/chef-dk/skeletons, в которой находится стандартная кулинарная книгаcode_generator, включенная в Chef Workstation. -
-b,--berks -
Создать файл Berksfile в кулинарной книге. По умолчанию: отключено. Необязательно. Используется для создания Berksfile, переопределяя стандартное создание Policyfile.
-
-C COPYRIGHT,--copyright COPYRIGHT -
Указать правообладателя авторских прав для уведомлений об авторских правах в сгенерированных файлах. Значение по умолчанию:
The Authors -
-d,--delivery -
Сгенерировать файл конфигурации доставки и скомпилировать кулинарную книгу внутри новой кулинарной книги. По умолчанию: отключено. Этот параметр отключён. Он не имеет эффекта и существует только для совместимости с предыдущими версиями.
-
-m EMAIL,--email EMAIL -
Указать адрес электронной почты автора. Значение по умолчанию:
you@example.com. -
-a KEY=VALUE,--generator-arg KEY=VALUE -
Устанавливает свойство с именем
KEYзаданному значениюVALUEв объекте контекста генератора в кулинарной книге генератора. Это позволяет пользовательским кулинарным книгам генераторов принимать необязательные пользовательские входные данные в командной строке. -
-I LICENSE,--license LICENSE -
Установить лицензию. Допустимые значения:
all_rights,apache2,mit,gplv2илиgplv3. Значение по умолчанию:all_rights. -
-P,--policy -
Создать Policyfile в кулинарной книге вместо Berksfile. По умолчанию: включено.
-
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Создание кулинарной книги
Для генерации кулинарной книги выполните команду, подобную:
chef generate cookbook chefdocs
что вернёт результат, похожий на:
Recipe: code_generator::cookbook
* directory[/Users/grantmc/chefdocs] action create
- create new directory /Users/grantmc/chefdocs
* template[/Users/grantmc/chefdocs/metadata.rb] action create
- create new file /Users/grantmc/chefdocs/metadata.rb
* template[/Users/grantmc/chefdocs/README.md] action create
- create new file /Users/grantmc/chefdocs/README.md
* cookbook_file[/Users/grantmc/chefdocs/chefignore] action create
- create new file /Users/grantmc/chefdocs/chefignore
* cookbook_file[/Users/grantmc/chefdocs/Berksfile] action create
- create new file /Users/grantmc/chefdocs/Berksfile
* template[/Users/grantmc/chefdocs/kitchen.yml] action create
- create new file /Users/grantmc/chefdocs/kitchen.yml
* directory[/Users/grantmc/chefdocs/recipes] action create
- create new directory /Users/grantmc/chefdocs/recipes
* template[/Users/grantmc/chefdocs/recipes/default.rb] action create
- create new file /Users/grantmc/chefdocs/recipes/default.rb
* execute[initialize-git] action run
- execute git init .
* cookbook_file[/Users/grantmc/chefdocs/.gitignore] action create
- create new file /Users/grantmc/chefdocs/.gitignore
и которая создаёт структуру каталогов, подобную:
/chefdocs
/.git
.gitignore
kitchen.yml
Berksfile
chefignore
metadata.rb
README.md
/recipes
default.rb
Создание кулинарной книги с использованием пользовательской кулинарной книги-шаблона
Если пользовательский шаблонный сборник рецептов находится на рабочем столе macOS (и в этом примере сборник рецептов chef_generator просто копия того же сборника рецептов, поставляемого в Chef Workstation), следующая команда будет использовать шаблонный сборник рецептов в пользовательском расположении для создания сборника рецептов в репозитории, из которого выполняется команда chef:
chef generate cookbook --generator-cookbook ~/Desktop testcookbook
Примечание
code_generator не указан в качестве части пути. возвратит результат, подобный:
Compiling Cookbooks...
Recipe: code_generator::cookbook
* directory[/Users/grantmc/Desktop/chef-repo/test-cookbook] action create
- create new directory /Users/grantmc/Desktop/chef-repo/test-cookbook
* template[/Users/grantmc/Desktop/chef-repo/test-cookbook/metadata.rb] action create
- create new file /Users/grantmc/Desktop/chef-repo/test-cookbook/metadata.rb
* template[/Users/grantmc/Desktop/chef-repo/test-cookbook/README.md] action create
- create new file /Users/grantmc/Desktop/chef-repo/test-cookbook/README.md
* cookbook_file[/Users/grantmc/Desktop/chef-repo/test-cookbook/chefignore] action create
- create new file /Users/grantmc/Desktop/chef-repo/test-cookbook/chefignore
* cookbook_file[/Users/grantmc/Desktop/chef-repo/test-cookbook/Berksfile] action create
- create new file /Users/grantmc/Desktop/chef-repo/test-cookbook/Berksfile
* template[/Users/grantmc/Desktop/chef-repo/test-cookbook/kitchen.yml] action create
- create new file /Users/grantmc/Desktop/chef-repo/test-cookbook/kitchen.yml
* directory[/Users/grantmc/Desktop/chef-repo/test-cookbook/recipes] action create
- create new directory /Users/grantmc/Desktop/chef-repo/test-cookbook/recipes
* template[/Users/grantmc/Desktop/chef-repo/test-cookbook/recipes/default.rb] action create
- create new file /Users/grantmc/Desktop/chef-repo/test-cookbook/recipes/default.rb
chef generate build-cookbook
Используйте подкоманду chef generate build-cookbook для генерации файла конфигурации доставки и сборки сборника рецептов.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef generate build-cookbook COOKBOOK_PATH/COOKBOOK_NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-g GENERATOR_COOKBOOK_PATH,--generator-cookbook GENERATOR_COOKBOOK_PATH -
Путь к сборнику рецептов с именем
code_generator. Этот сборник рецептов используется подкомандамиchef generateдля генерации сборников рецептов, файлов сборников рецептов, шаблонов, файлов атрибутов и т. д. Значение по умолчанию:lib/chef-dk/skeletons, в котором находится стандартный сборник рецептовcode_generator, включенный в Chef Workstation. -
-C COPYRIGHT,--copyright COPYRIGHT -
Укажите правообладателя авторских прав для указаний авторских прав в сгенерированных файлах. Значение по умолчанию:
The Authors -
-m EMAIL,--email EMAIL -
Укажите адрес электронной почты автора. Значение по умолчанию:
you@example.com. -
-a KEY=VALUE,--generator-arg KEY=VALUE -
Устанавливает свойство с именем
KEYна заданное значениеVALUEв объекте контекста генератора в сборнике рецептов генератора. Это позволяет пользовательским сборникам рецептов генератора принимать необязательные входные данные в командной строке. -
-I LICENSE,--license LICENSE -
Устанавливает лицензию. Допустимые значения:
all_rights,apache2,mit,gplv2илиgplv3. Значение по умолчанию:all_rights. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef generate file
Используйте подкоманду chef generate file для генерации файла в каталоге /files.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef generate file COOKBOOK_PATH NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-g GENERATOR_COOKBOOK_PATH,--generator-cookbook GENERATOR_COOKBOOK_PATH -
Путь к сборнику рецептов с именем
code_generator. Этот сборник рецептов используется подкомандамиchef generateдля генерации сборников рецептов, файлов сборников рецептов, шаблонов, файлов атрибутов и т. д. Значение по умолчанию:lib/chef-dk/skeletons, в котором находится стандартный сборник рецептовcode_generator, включенный в Chef Workstation. -
-h,--help -
Показать справку по команде.
-
-s SOURCE_FILE,--source SOURCE_FILE -
Копировать содержимое из исходного файла.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef generate resource
Используйте подкоманду chef generate resource для генерации пользовательского ресурса в каталоге /resources.
Примечание
-) — допустимый символ и может использоваться в именах сборников рецептов и пользовательских ресурсов, но это не рекомендуется. Chef Infra Client вернет ошибку, если тире не будет преобразовано в подчеркивание (_) при ссылке на имя пользовательского ресурса в рецепте, в котором используется тире.Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef generate resource COOKBOOK_PATH NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-g GENERATOR_COOKBOOK_PATH,--generator-cookbook GENERATOR_COOKBOOK_PATH -
Путь к сборнику рецептов с именем
code_generator. Этот сборник рецептов используется подкомандамиchef generateдля генерации сборников рецептов, файлов сборников рецептов, шаблонов, файлов атрибутов и т. д. Значение по умолчанию:lib/chef-dk/skeletons, в котором находится стандартный сборник рецептовcode_generator, включенный в Chef Workstation. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef generate recipe
Используйте подкоманду chef generate recipe для генерации рецепта в каталоге /recipes.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef generate recipe COOKBOOK_PATH NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-g GENERATOR_COOKBOOK_PATH,--generator-cookbook GENERATOR_COOKBOOK_PATH -
Путь к сборнику рецептов с именем
code_generator. Этот сборник рецептов используется подкомандамиchef generateдля генерации сборников рецептов, файлов сборников рецептов, шаблонов, файлов атрибутов и т. д. Значение по умолчанию:lib/chef-dk/skeletons, в котором находится стандартный сборник рецептовcode_generator, включенный в Chef Workstation. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef generate repo
Используйте подкоманду chef generate repo для создания chef-repo. По умолчанию, это репозиторий сборников рецептов с параметрами, которые поддерживают создание сборника рецептов, поддерживающего Policyfile.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef generate repo REPO_NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-h,--help -
Показать справку по команде.
-
-p,--policy-only -
Создать репозиторий, который не хранит файлы сборников рецептов, только файлы Policyfile.
-
-P,--policy -
Использовать Policyfile вместо Berkshelf.
-
-r,--roles -
Создать каталоги для
/rolesи/environmentsвместо создания каталогов для Policyfile. -
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef generate template
Используйте подкоманду chef generate template для генерации шаблона в каталоге /templates.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef generate template COOKBOOK_PATH NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-g GENERATOR_COOKBOOK_PATH,--generator-cookbook GENERATOR_COOKBOOK_PATH -
Путь к сборнику рецептов с именем
code_generator. Этот сборник рецептов используется подкомандамиchef generateдля генерации сборников рецептов, файлов сборников рецептов, шаблонов, файлов атрибутов и т. д. Значение по умолчанию:lib/chef-dk/skeletons, в котором находится стандартный сборник рецептовcode_generator, включенный в Chef Workstation. -
-h,--help -
Показать справку по команде.
-
-s SOURCE_FILE,--source SOURCE_FILE -
Копировать содержимое из исходного файла.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef report cookbooks
Используйте подкоманду chef report cookbooks для создания отчета, ориентированного на сборники рецептов, для вашей среды Chef Infra. Этот отчет предоставляет подробную информацию об ошибках совместимости обновлений и использовании сборников рецептов узлами.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef report cookbooks [options]
Параметры
Эта подкоманда имеет следующие параметры:
-
-a,--anonymize -
Заменить имена сборников рецептов и узлов значениями хешей для защиты конфиденциальной информации.
-
-c,--credentials string -
Файл учетных данных (по умолчанию $HOME/.chef/credentials).
-
-f,--format -
Формат вывода: txt — удобочитаемый, csv — машиночитаемый (по умолчанию «txt»).
-
-F,--node-filter -
Фильтр поиска, применяемый к узлам.
-
-h,--help -
Показать справку по команде.
-
-k,--client-key -
Ключ API клиента Chef Infra Server.
-
-n,--client-name -
Имя клиента API Chef Infra Server.
-
-o,--ssl-no-verify -
Не проверять SSL при подключении к Chef Infra Server (по умолчанию: проверять).
-
-p,--profile -
Профиль для использования из файла учетных данных (по умолчанию «default»).
-
-s,--chef-server-url -
URL Chef Infra Server.
-
-u,--only-unused -
Создать отчет, который включает только сборники рецептов, не включенные в runlist ни одного узла.
-
-V,--verify-upgrade -
Проверить совместимость обновления каждого сборника рецептов.
-
-w,--workers -
Максимальное количество параллельных рабочих процессов одновременно (по умолчанию 50).
Примеры
Создать отчет
Для создания отчета, ориентированного на сборники рецептов, запустите команду, подобную:
chef report cookbooks
вернёт что-то подобное:
Finding available cookbooks... (5 found)
Analyzing cookbooks...
5 / 5 [----------------------------------------------------------------------------------------------------------------] 100.00% 13 p/s
-- REPORT SUMMARY --
Cookbook Version Policy Group Policy Nodes Affected
-----------+---------+--------------+--------+-----------------
apt 2.7.0 2
Go 0.1.0 3
java 0.3.0 4
java Production K8s 1
K8s Production K8s 1
Cookbooks report saved to .chef-workstation/reports/cookbooks-20200722120938.txt
Более подробный отчёт по этому сводному отчету можно посмотреть в текстовом файле, местоположение которого указано в конце отчета.
Для получения дополнительной информации об обновлении Chef Infra Client см. документацию Upgrade Lab.
отчёты chef report nodes
Используйте подкоманду chef report nodes для генерации отчёта, ориентированного на узлы, для вашей среды chef. Этот отчёт предоставляет подробную информацию об узлах, применённых политиках и кулинарных книгах, используемых во время последнего запуска chef-client.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef report nodes [options]
Параметры
Эта подкоманда имеет следующие параметры:
-
-a,--anonymize -
Замените имена кулинарных книг и узлов значениями хешей для защиты конфиденциальной информации.
-
-c,--credentials string -
Файл с данными для аутентификации (по умолчанию $HOME/.chef/credentials).
-
-f,--format -
Формат вывода: txt — для удобного чтения человеком, csv — для машинного чтения (по умолчанию “txt”).
-
-F,--node-filter -
Фильтр поиска для узлов.
-
-h,--help -
Показать справку по команде.
-
-k,--client-key -
Ключ API клиента Chef Infra Server.
-
-n,--client-name -
Имя клиента API Chef Infra Server.
-
-o,--ssl-no-verify -
Не проверять SSL при подключении к Chef Infra Server (по умолчанию: проверять).
-
-p,--profile -
Профиль для использования из файла с данными для аутентификации (по умолчанию “default”).
-
-s,--chef-server-url -
URL Chef Infra Server.
Примеры
Сгенерировать отчёт
Для генерации отчёта, ориентированного на узлы, выполните команду, подобную:
chef report nodes
вернёт что-то подобное:
Analyzing nodes...
-- REPORT SUMMARY --
Node Name Chef Version Operating System Number Cookbooks
---------------------+--------------+------------------+-------------------
dev-server-backend 16.1.16 redhat v8.2 3
dev-server-web 16.1.16 redhat v8.2 1
production-server 16.1.16 redhat v8.2 2
staging-server 16.1.16 redhat v8.2 4
test-server 16.1.16 redhat v8.2 3
Nodes report saved to .chef-workstation/reports/nodes-20200722130502.txt
Более подробный отчёт по этому сводному отчету можно посмотреть в текстовом файле, местоположение которого указано в конце отчета.
Upgrade Lab содержит дополнительные сведения о том, как использовать эту команду в процессе обновления Chef Infra Client.
chef shell-init
Используйте подкоманду chef shell-init, чтобы установить Ruby, включённый в Chef Workstation, в качестве системного Ruby. Chef Workstation разработан для изоляции приложений, используемых Chef Workstation, от других инструментов разработки Ruby, которые могут быть на рабочем столе. Это поддерживает Bash, fish, Windows PowerShell (posh) и zsh.
bash zsh fish PowerShell (posh)
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef shell-init SHELL_NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Установить PowerShell
Вы можете использовать команду chef shell-init с Windows PowerShell, чтобы добавить соответствующие переменные в вашу среду.
Чтобы попробовать это в текущей сессии:
chef shell-init powershell | Invoke-Expression
Чтобы включить это постоянно:
"chef shell-init powershell | Invoke-Expression" >> $PROFILE
Установите политику выполнения на новых компьютерах
На новых компьютерах с Windows скрипты PowerShell не будут работать, пока администратор не выполнит следующую команду:
Set-ExecutionPolicy RemoteSigned
Создайте $PROFILE на новых машинах
На новых компьютерах с Windows команды не могут быть добавлены к $PROFILE, если папка не существует или если есть новый пользовательский профиль. Это приведёт к ошибке, подобной следующей:
PS C:\Users\Stuart> "chef shell-init powershell | Invoke-Expression" >> $PROFILE
out-file : Could not find a part of the path
'C:\Users\Stuart\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.
At line:1 char:1
+ "chef shell-init powershell | Invoke-Expression" >> $PROFILE
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (:) [Out-File], DirectoryNotFoundException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand
В этой ситуации выполните вместо этого команду chef shell-init:
if(Test-Path $PROFILE){ chef shell-init powershell | Add-Content $PROFILE } else { New-Item -Force -ItemType File $PROFILE; chef shell-init powershell | Add-Content $PROFILE }
Команды Policyfile
Следующие команды встроены в исполняемый файл chef и поддерживают использование файлов Policyfile.
chef clean-policy-cookbooks
Используйте подкоманду chef clean-policy-cookbooks для удаления кулинарных книг, которые не используются файлами Policyfile. Кулинарные книги считаются неиспользуемыми, если они не указаны ни одной из версий политики на Chef Infra Server.
Примечание
Кулинарные книги, на которые ссылаются оставшиеся версии политики, не удаляются. Используйте chef clean-policy-revisions для удаления оставшихся политик.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef clean-policy-cookbooks (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к файлу конфигурации knife.
-
-D,--debug -
Включить трассировки стека и другие параметры отладки. Значение по умолчанию:
false. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef clean-policy-revisions
Используйте подкоманду chef clean-policy-revisions для удаления оставшихся версий политики для файлов Policyfile с Chef Infra Server. Оставшаяся версия политики не связана ни с одной группой политики и, следовательно, не используется ни одним узлом. Используйте chef show-policy --orphans, чтобы просмотреть список оставшихся версий политики.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef clean-policy-revisions (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к файлу конфигурации knife.
-
-D,--debug -
Включить трассировки стека и другие параметры отладки. Значение по умолчанию:
false. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef delete-policy
Используйте подкоманду chef delete-policy для удаления всех версий указанной политики, которые существуют на Chef Infra Server. (Состояние версии политики резервируется локально и может быть восстановлено с помощью подкоманды chef undelete.)
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef delete-policy POLICY_NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к файлу конфигурации knife.
-
-D,--debug -
Включить трассировки стека и другие параметры отладки. Значение по умолчанию:
false. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef delete-policy-group
Используйте подкоманду chef delete-policy-group для удаления указанной группы политики с Chef Infra Server. Любая версия политики, связанная с этой группой политики, не удаляется. (Состояние группы политики резервируется локально и может быть восстановлено с помощью подкоманды chef undelete.)
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef delete-policy-group POLICY_GROUP (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к файлу конфигурации knife.
-
-D,--debug -
Включить трассировки стека и другие параметры отладки. Значение по умолчанию:
false. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef diff
Используйте подкоманду chef diff для отображения детального сравнения двух версий файла Policyfile.lock.json.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef diff POLICY_FILE --head | --git POLICY_GROUP | POLICY_GROUP...POLICY_GROUP (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к файлу конфигурации knife.
-
-D,--debug -
Включить трассировки стека и другие параметры отладки. Значение по умолчанию:
false. -
-g GIT_REF,--git GIT_REF -
Сравнить указанную ссылку git с текущей версией файла
Policyfile.lock.jsonили с другой ссылкой git. -
-h,--help -
Показать справку по команде.
--head-
Является сокращением для
chef diff --git HEAD. Когда не указан флаг, специфичный для git, сравнивается локальный файлPolicyfile.lock.jsonс файлом на Chef Infra Server или (если локального файлаPolicyfile.lock.jsonнет) два файлаPolicyfile.lock.jsonв указанной группе политики на Chef Infra Server. --[no-]pager-
Используйте
--pagerдля включения постраничного вывода для файлаPolicyfile.lock.json. Значение по умолчанию:--pager. -
-v,--version -
Версия Chef Infra Client.
Примеры
Сравнение текущего файла блокировки с последним коммитом на последней ветке
chef diff --git HEAD
Сравнение текущего файла блокировки с последним коммитом на ветке master
chef diff --git master
Сравнение текущего блокирования с указанной версией
chef diff --git v1.0.0
Сравнение блокировки на ветке master с блокировкой на версии
chef diff --git master...dev
Сравнение блокировки для версии с последним коммитом на ветке master
chef diff --git v1.0.0...master
Сравнение текущей блокировки с последней блокировкой для группы политик
chef diff staging
Сравнение блокировок для двух групп политик
chef diff production...staging
chef export
Используйте подкоманду chef export для создания совместимого с chef-zero репозитория chef-repo, который содержит кулинарии, описанные в файле Policyfile.lock.json. После копирования совместимого с chef-zero chef-repo на узел, политику можно применить локально на этом компьютере, выполнив chef-client -z (локальный режим).
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef export POLICY_FILE DIRECTORY (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-a,--archive -
Экспортировать архив в виде tar-архива, а не каталога. Значение по умолчанию:
false. -
-D,--debug -
Включить трассировки стека и другие данные отладки. Значение по умолчанию:
false. -
-f,--force -
Удалить содержимое целевого каталога, если этот каталог не пуст. Значение по умолчанию:
false. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef generate policyfile
Используйте подкоманду chef generate policyfile для генерации файла, который будет использоваться с Policyfile.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef generate policyfile POLICY_NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef install
Используйте подкоманду chef install для оценки файла политики и поиска совместимого набора кулинарий, построения списка выполнения, кэширования его локально и затем вывода файла Policyfile.lock.json, описывающего заблокированный набор политик. Файл Policyfile.lock.json может быть использован для установки заблокированного набора политик на другие машины и может быть загружен в группу политик на сервере Chef Infra для применения этой политики к группе узлов, управляемых Chef.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef install POLICY_FILE (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-D,--debug -
Включить трассировки стека и другие данные отладки.
-
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Policyfile.lock.json
При выполнении команды chef install Chef Workstation кэширует необходимые кулинарии и выводит файл Policyfile.lock.json, который описывает:
- Версии используемых кулинарий
- Хэш содержимого кулинарий
- Источник всех кулинарий
Файл Policyfile.lock.json связан с определенной группой политик, т.е. связан с одним (или несколькими) узлами, использующими ту же версию заданной политики.
Файл Policyfile.lock.json похож на:
{
"revision_id": "288ed244f8db8bff3caf58147e840bbe079f76e0",
"name": "jenkins",
"run_list": [
"recipe[java::default]",
"recipe[jenkins::master]",
"recipe[policyfile_demo::default]"
],
"cookbook_locks": {
"policyfile_demo": {
"version": "0.1.0",
"identifier": "f04cc40faf628253fe7d9566d66a1733fb1afbe9",
"dotted_decimal_identifier": "67638399371010690.23642238397896298.25512023620585",
"source": "cookbooks/policyfile_demo",
"cache_key": null,
"scm_info": null,
"source_options": {
"path": "cookbooks/policyfile_demo"
}
},
"java": {
"version": "1.24.0",
"identifier": "4c24ae46a6633e424925c24e683e0f43786236a3",
"dotted_decimal_identifier": "21432429158228798.18657774985439294.16782456927907",
"cache_key": "java-1.24.0-supermarket.chef.io",
"origin": "https://supermarket.chef.io/api/v1/cookbooks/java/versions/1.24.0/download",
"source_options": {
"artifactserver": "https://supermarket.chef.io/api/v1/cookbooks/java/versions/1.24.0/download",
"version": "1.24.0"
}
Примеры
Нет.
chef push
Используйте подкоманду chef push для загрузки существующего файла Policyfile.lock.json на сервер Chef Infra, вместе со всеми кулинариями, содержащимися в файле. Файл Policyfile.lock.json будет применён к указанной группе политик, которая является набором узлов, разделяющих тот же список выполнения и кулинарии.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef push POLICY_GROUP POLICY_FILE (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к конфигурационному файлу knife.
-
-D,--debug -
Включить трассировки стека и другие данные отладки.
-
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef push-archive
Подкоманда chef push-archive используется для публикации файла архива политики на сервер Chef Infra. (Архив политики создается с помощью подкоманды chef export). Архив политики назначается указанной группе политик, которая представляет собой набор узлов, разделяющих тот же список выполнения и кулинарии.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef push-archive POLICY_GROUP ARCHIVE_FILE (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к конфигурационному файлу knife.
-
-D,--debug -
Включить трассировки стека и другие данные отладки. Значение по умолчанию:
false. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef show-policy
Используйте подкоманду chef show-policy для отображения ревизий для каждого файла Policyfile.rb на сервере Chef Infra. По умолчанию показываются только активные ревизии политики. При указании политики и группы политик возвращается содержимое активного файла Policyfile.lock.json для группы политик.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef show-policy POLICY_NAME POLICY_GROUP (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к конфигурационному файлу knife.
-
-D,--debug -
Включить трассировки стека и другие данные отладки. Значение по умолчанию:
false. -
-h,--help -
Показать справку по команде.
-
-o,--orphans -
Показать ревизии политики, которые в настоящее время не назначены ни одной группе политик.
--[no-]pager-
Используйте
--pagerдля включения постраничного вывода для файлаPolicyfile.lock.json. Значение по умолчанию:--pager. -
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef undelete
Используйте подкоманду chef undelete для восстановления удаленной политики или группы политик. Эта команда:
- Не обнаруживает конфликты. Если удалённый элемент был пересоздан, выполнение этой команды перезапишет его
- Не включает кулинарии, которые могут упоминаться в файлах политики; кулинарии, которые очищаются после выполнения этой команды, могут быть не полностью восстановлены до их предыдущего состояния
- Не сохраняет данные контроля доступа
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef undelete (options)
При запуске без аргументов возвращает список доступных операций.
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE -
Путь к конфигурационному файлу knife.
-
-D,--debug -
Включить трассировки стека и другие данные отладки.
-
-h,--help -
Показать справку по команде.
-
-i ID,--id ID -
Отменить операцию удаления, указанную в
ID. -
-l,--last -
Отменить последнюю операцию удаления.
--list-
По умолчанию. Возвращает список доступных операций.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
chef update
Используйте подкоманду chef update для чтения файла Policyfile.rb и применения всех изменений. Это позволит разрешить зависимости и создаст файл Policyfile.lock.json. Заблокированная политика будет отражать любые изменения в списке выполнения и включит любые обновления кулинарий, совместимые с любыми ограничениями версий, определенными в файле Policyfile.rb.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef update POLICY_FILE (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-a,--attributes -
Обновить атрибуты. Значение по умолчанию:
false. -
-D,--debug -
Включить трассировки стека и другие данные отладки. Значение по умолчанию:
false. -
-h,--help -
Показать справку по команде.
-
-v,--version -
Версия Chef Infra Client.
Примеры
Нет.
© 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/workstation/ctl_chef/