chef (исполняемый файл)
Исполняемый файл chef — это командная утилита, которая выполняет следующие действия:
- Генерирует репозитории, кулинарные книги, рецепты, атрибуты, шаблоны и пользовательские ресурсы.
- Устанавливает драгоценности в среду разработки 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.
chef env
Используйте подкоманду chef env, чтобы настроить среду для Chef Workstation.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef env
Параметры
У этой команды нет конкретных параметров.
Примеры
Нет.
chef exec
Используйте подкоманду chef exec, чтобы выполнить произвольные командные строки shell с переменной среды 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.
Примеры
Показать существующую драгоценность в Chef Workstation
Чтобы показать драгоценность, выполните команду, подобную:
chef gem list cookstyle
что вернёт результат, похожий на:
*** LOCAL GEMS ***
cookstyle (5.20.0)
Список всех локальных драгоценностей
Чтобы перечислить все установленные драгоценности в вашей среде разработки, используйте команду list без аргументов:
chef gem list
Поиск локальных драгоценностей
Команду list также можно использовать для поиска установленных локально драгоценностей. Например, чтобы перечислить все драгоценности с knife в названии:
chef gem list knife
что вернёт следующий вывод:
*** LOCAL GEMS ***
knife-opc (0.3.2)
knife-push (1.0.2)
knife-windows (1.9.0)
Поиск удалённых драгоценностей
Используйте команду search для поиска удалённых драгоценностей, доступных для установки:
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)
Установить драгоценность
Чтобы установить драгоценность, выполните команду, подобную:
chef gem install knife-config
что вернёт результат, похожий на:
Successfully installed knife-config-1.1.0
1 gem installed
Удалить драгоценность
Чтобы удалить драгоценность из среды Chef Workstation:
chef gem uninstall knife-config
что вернёт результат, похожий на:
Successfully uninstalled knife-config-1.1.0
Просмотр содержимого драгоценности
Чтобы просмотреть содержимое драгоценности, выполните команду, подобную:
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
Примечание
вернёт что-то подобное:
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.
-
-n,--client-name Имя клиента API сервера Chef Infra.
-
-o,--ssl-no-verify Не проверять SSL при подключении к серверу Chef Infra (по умолчанию: проверять).
-
-p,--profile Профиль для использования из файла с учётными данными (по умолчанию «default»).
-
-s,--chef-server-url URL сервера Chef Infra.
-
-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
Более подробный сводный отчёт можно просмотреть в текстовом файле, местоположение которого указано в конце сводного отчёта.
См. документацию Upgrade Lab для получения дополнительной информации об обновлении Chef Infra Client.
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 Ключ клиента Chef Infra Server API.
-
-n,--client-name Имя клиента Chef Infra Server API.
-
-o,--ssl-no-verify Не проверять SSL при подключении к Chef Infra Server (по умолчанию: проверять).
-
-p,--profile Профиль для использования из файла учетных данных (по умолчанию «default»).
-
-s,--chef-server-url URL-адрес сервера Chef Infra.
Примеры
Генерация отчета
Чтобы сгенерировать отчет, ориентированный на узлы, выполните команду, подобную этой:
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.
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.
Примеры
Настройка 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.
Примечание
Кулинарные книги, на которые ссылаются осиротевшие версии политики, не удаляются. Используйте 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.
Примеры
Нет.
chef clean-policy-revisions
Используйте подкоманду chef clean-policy-revisions для удаления осиротевших версий политики для файлов Policyfile с сервера Chef Infra. Осиротевшая версия политики не связана ни с одной группой политик и, следовательно, не используется активными узлами. Используйте 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.
Примеры
Нет.
chef delete-policy
Используйте подкоманду chef delete-policy для удаления всех версий указанной политики, которые существуют на сервере Chef Infra. (Состояние версии политики резервируется локально и может быть восстановлено с помощью подкоманды chef undelete.)
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef delete-policy POLICY_NAME (options)
Параметры
Эта подкоманда имеет следующие параметры:
-
-c CONFIG_FILE,--config CONFIG_FILE Путь к файлу конфигурации knife.
-
-D,--debug Включить трассировку стека и другие выходные данные отладки. Значение по умолчанию:
false.-
-h,--help Показать справку по команде.
-
-v,--version Версия клиента Chef Infra.
Примеры
Нет.
chef delete-policy-group
Используйте подкоманду chef delete-policy-group для удаления указанной группы политик с сервера Chef Infra. Любая версия политики, связанная с этой группой политик, не удаляется. (Состояние группы политик резервируется локально и может быть восстановлено с помощью подкоманды 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.
Примеры
Нет.
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 или (если файлPolicyfile.lock.jsonотсутствует на диске) сравниваются два файлаPolicyfile.lock.jsonв указанной группе политик на сервере Chef Infra.--[no-]pagerИспользуйте
--pagerдля включения постраничного вывода для файлаPolicyfile.lock.json. Значение по умолчанию:--pager.-
-v,--version Версия клиента Chef Infra.
Примеры
Сравнение текущего lock с последним коммитом на последней ветке
chef diff --git HEAD
Сравнение текущего lock с последним коммитом на ветке master
chef diff --git master
Сравнение текущего lock с указанной ревизией
chef diff --git v1.0.0
Сравнение lock на ветке master с lock на ревизии
chef diff --git master...dev
Сравнение lock для версии с последним коммитом на ветке master
chef diff --git v1.0.0...master
Сравнение текущего lock с последним lock для группы политик
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)
Настройки конфигурации
Файл client.rb на этом компьютере требует следующих настроек:
deployment_groupЭта настройка должна быть установлена в значение
'$POLICY_NAME-local'.policy_document_native_apiЭта настройка должна быть установлена в значение
false.use_policyfileЭта настройка должна быть установлена в значение
true.versioned_cookbooksЭта настройка должна быть установлена в значение
true.
Опции
Эта подкоманда имеет следующие опции:
-
-a,--archive Экспортировать архив в виде tar-архива, а не как директорию. Значение по умолчанию:
false.-
-D,--debug Включить трассировку стека и другие данные отладки. Значение по умолчанию:
false.-
-f,--force Удалить содержимое целевой директории, если эта директория не пуста. Значение по умолчанию:
false.-
-h,--help Показать справку по команде.
-
-v,--version Версия клиента Chef Infra.
Примеры
Нет.
chef generate policyfile
Используйте подкоманду chef generate policyfile для генерации файла, который будет использоваться с Policyfile.
Синтаксис
Эта подкоманда имеет следующий синтаксис:
chef generate policyfile POLICY_NAME (options)
Опции
Эта подкоманда имеет следующие опции:
-
-h,--help Показать справку по команде.
-
-v,--version Версия клиента Chef Infra.
Примеры
Нет.
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.
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.
Примеры
Нет.
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.
Примеры
Нет.
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.
Примеры
Нет.
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.
Примеры
Нет.
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.
Примеры
Нет.
© 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/ctl_chef/