Spec-Zone.ru › Chef 18

узел ножа

[редактировать на GitHub]

Узел — это любое устройство (физическое, виртуальное, облачное, сетевое и т. д.), находящееся под управлением Chef Infra.

Используйте подкоманду knife node для управления узлами, существующими на сервере Chef Infra.

Примечание

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

удаление по образцу

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

Синтаксис

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

knife node bulk delete REGEX

Опции

У этой команды нет специфических опций.

Примеры

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

Удаление узлов по образцу

Используйте регулярное выражение для определения шаблона, используемого для удаления узлов:

knife node bulk delete "^[0-9]{3}$"

Введите Y для подтверждения удаления.

создание

Используйте аргумент create для добавления узла на сервер Chef Infra. Данные узла хранятся в формате JSON на сервере Chef Infra.

Синтаксис

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

knife node create NODE_NAME

Опции

У этой команды нет специфических опций.

Примеры

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

Создание узла

Для добавления узла с именем node1, введите:

knife node create node1

В $EDITOR введите данные узла в формате JSON:

{
   "normal": {
   },
   "name": "foobar",
   "override": {
   },
   "default": {
   },
   "json_class": "Chef::Node",
   "automatic": {
   },
   "run_list": [
      "recipe[zsh]",
      "role[webserver]"
   ],
   "chef_type": "node"
}

После завершения сохраните файл.

удаление

Используйте аргумент delete для удаления узла с сервера Chef Infra. Если используется Chef Client 12.17 или более поздней версии, вы можете удалить несколько узлов с помощью этой подкоманды.

Примечание

Удаление узла не удалит соответствующих API-клиентов.

Синтаксис

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

knife node delete NODE_NAME

Опции

У этой команды нет специфических опций.

Примеры

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

Удаление узла

Для удаления узла с именем node1, введите:

knife node delete node1

редактирование

Используйте аргумент edit для редактирования данных узла на сервере Chef Infra. Данные узла хранятся в формате JSON на сервере Chef Infra.

Синтаксис

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

knife node edit NODE_NAME (options)

Опции

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

-a, --all

Отображение узла в $EDITOR. По умолчанию атрибуты по умолчанию, переопределения или автоматические не отображаются.

Примеры

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

Редактирование узла

Для редактирования данных узла с именем node1, введите:

knife node edit node1 -a

Обновите данные роли в формате JSON:

{
   "normal": {
   },
   "name": "node1",
   "override": {
   },
   "default": {
   },
   "json_class": "Chef::Node",
   "automatic": {
   },
   "run_list": [
      "recipe[devops]",
      "role[webserver]"
   ],
   "chef_type": "node"
}

После завершения сохраните файл.

установка среды

Используйте аргумент environment set для установки среды для узла без редактирования объекта узла.

Синтаксис

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

knife node environment_set NODE_NAME ENVIRONMENT_NAME (options)

Опции

У этой команды нет специфических опций.

Примеры

Нет.

из файла

Используйте аргумент from file для создания узла, используя существующие данные узла в качестве шаблона.

Синтаксис

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

knife node from file FILE

Опции

У этой команды нет специфических опций.

Примеры

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

Создание узла из файла JSON

Для добавления узла, используя данные из файла JSON:

knife node from file "PATH_TO_JSON_FILE"

список

Используйте аргумент list для просмотра всех узлов, существующих на сервере Chef Infra.

Синтаксис

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

knife node list (options)

Опции

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

-w, --with-uri

Отображение соответствующих URI.

Примечание

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

Примеры

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

Просмотр списка узлов

Для проверки списка узлов, зарегистрированных на сервере Chef Infra, введите:

knife node list

что вернёт что-то подобное:

i-12345678
rs-123456

установка политики

Используйте аргумент policy set для установки группы политик и имени политики для узла.

Синтаксис

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

knife node policy set NODE POLICY_GROUP POLICY_NAME

Примеры

Установите группу политик и имя политики для узла с именем test-node,:

knife node policy set test-node 'test-group' 'test-name'

добавление run-list

Run-list определяет всю информацию, необходимую Chef для настройки узла в желаемое состояние. Run-list:

  • Представляет собой упорядоченный список ролей и/или рецептов, которые выполняются в точном порядке, указанном в run-list; если рецепт появляется в run-list более одного раза, Chef Infra Client не выполнит его дважды
  • Всегда специфичен для узла, на котором он выполняется; узлы могут иметь run-list, идентичный run-list, используемому другими узлами
  • Хранится как часть объекта узла на сервере Chef
  • Поддерживается с помощью knife и затем загружается со рабочего стола на сервер Chef Infra, или поддерживается с помощью Chef Automate

Используйте аргумент run_list add для добавления элементов run-list (ролей или рецептов) к узлу.

Run-list должен быть в одном из следующих форматов: полный путь, кулинария или по умолчанию. И роли, и рецепты должны быть в кавычках, например:

"role[NAME]"

или

"recipe[COOKBOOK::RECIPE]"

Используйте запятую для разделения ролей и рецептов при добавлении более одного элемента в run-list:

"recipe[COOKBOOK::RECIPE],COOKBOOK::RECIPE,role[NAME]"

Синтаксис

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

knife node run_list add NODE_NAME RUN_LIST_ITEM (options)

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

При выполнении knife в Microsoft Windows строка может интерпретироваться как шаблон подстановок, когда кавычки отсутствуют в команде. Количество кавычек зависит от оболочки, из которой выполняется команда.

При выполнении knife из командной строки, строка должна быть окружена одинарными кавычками (' '). Например:

knife node run_list set test-node 'recipe[iptables]'

При выполнении knife из Windows PowerShell, строка должна быть окружена тройными одинарными кавычками (''' '''). Например:

knife node run_list set test-node '''recipe[iptables]'''

Примечание

Выпуск Chef Client 12.4 добавляет дополнительную функцию к пакету MSI (Microsoft Installer Package) для Chef. Эта функция позволяет передавать строки в кавычках из командной строки Windows PowerShell без необходимости в тройных одинарных кавычках (''' '''). Эта функция устанавливает модуль Windows PowerShell (обычно в C:\opscode\chef\modules), который также добавляется к переменной среды PSModulePath. Эта функция по умолчанию отключена. Чтобы активировать эту функцию, выполните следующую команду из Windows PowerShell:

Import-Module chef

или добавьте Import-Module chef к профилю Windows PowerShell, расположенному по адресу:

~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Этот модуль экспортирует командлеты, имеющие то же имя, что и инструменты командной строки — chef-client, knife — встроенные в Chef.

Например:

knife exec -E 'puts ARGV' """&s0meth1ng"""

теперь:

knife exec -E 'puts ARGV' '&s0meth1ng'

и:

knife node run_list set test-node '''role[ssssssomething]'''

теперь:

knife node run_list set test-node 'role[ssssssomething]'

Чтобы удалить эту функцию, выполните следующую команду из Windows PowerShell:

Remove-Module chef

Опции

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

-a ITEM, --after ITEM

Добавление элемента run-list после указанного элемента run-list.

-b ITEM, --before ITEM

Добавление элемента run-list перед указанным элементом run-list.

Примечание

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

Примеры

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

Добавление роли

Для добавления роли в run-list, введите:

knife node run_list add NODE_NAME 'role[ROLE_NAME]'

Добавление ролей и рецептов

Для добавления ролей и рецептов в run-list, введите:

knife node run_list add NODE_NAME 'recipe[COOKBOOK::RECIPE_NAME],recipe[COOKBOOK::RECIPE_NAME],role[ROLE_NAME]'

Добавление рецепта с FQDN

Для добавления рецепта в run-list с использованием полного имени домена, введите:

knife node run_list add NODE_NAME 'recipe[COOKBOOK::RECIPE_NAME]'

Добавление рецепта с кулинарией

Для добавления рецепта в run-list, используя формат кулинарии, введите:

knife node run_list add NODE_NAME 'COOKBOOK::RECIPE_NAME'

Добавление рецепта по умолчанию

Для добавления рецепта по умолчанию кулинарии в run-list, введите:

knife node run_list add NODE_NAME 'COOKBOOK'

Удаление из run_list

Используйте аргумент run_list remove для удаления элементов run-list (ролей или рецептов) с узла. Рецепт должен быть в одном из следующих форматов: полное имя, название кулинарной книги или значение по умолчанию. И роли, и рецепты должны быть в кавычках, например: 'role[ROLE_NAME]' или 'recipe[COOKBOOK::RECIPE_NAME]'. Для удаления нескольких ролей и рецептов используйте запятую для разделения, как в этом примере: 'recipe[COOKBOOK::RECIPE_NAME],COOKBOOK::RECIPE_NAME,role[ROLE_NAME]'.

Синтаксис

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

knife node run_list remove NODE_NAME RUN_LIST_ITEM

Параметры

У этой команды нет специфических параметров.

Примечание

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

Примеры

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

Удаление роли

Чтобы удалить роль из run-list, введите:

knife node run_list remove NODE_NAME 'role[ROLE_NAME]'

Удаление run-list

Чтобы удалить рецепт из run-list, используя полное имя, введите:

knife node run_list remove NODE_NAME 'recipe[COOKBOOK::RECIPE_NAME]'

Установка run-list

Используйте аргумент run_list set для установки run-list для узла. Рецепт должен быть в одном из следующих форматов: полное имя, название кулинарной книги или значение по умолчанию. И роли, и рецепты должны быть в кавычках, например: "role[ROLE_NAME]" или "recipe[COOKBOOK::RECIPE_NAME]". Для установки нескольких ролей и рецептов используйте запятую для разделения, как в этом примере: "recipe[COOKBOOK::RECIPE_NAME],COOKBOOK::RECIPE_NAME,role[ROLE_NAME]".

Синтаксис

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

knife node run_list set NODE_NAME RUN_LIST_ITEM

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

При выполнении knife в Microsoft Windows строка может интерпретироваться как шаблон подстановочных знаков, если кавычки не указаны в команде. Количество кавычек зависит от оболочки, из которой выполняется команда.

При выполнении knife из командной строки, строка должна быть заключена в одинарные кавычки (' '). Например:

knife node run_list set test-node 'recipe[iptables]'

При выполнении knife из Windows PowerShell, строка должна быть заключена в тройные одинарные кавычки (''' '''). Например:

knife node run_list set test-node '''recipe[iptables]'''

Примечание

Выпуск Chef Client 12.4 добавляет необязательную функцию в пакет MSI Chef. Эта функция позволяет передавать строки в кавычках из командной строки Windows PowerShell без необходимости использовать тройные одинарные кавычки (''' '''). Эта функция устанавливает модуль Windows PowerShell (обычно в C:\opscode\chef\modules), который также добавляется в переменную среды PSModulePath. Эта функция по умолчанию отключена. Чтобы включить её, выполните следующую команду в Windows PowerShell:

Import-Module chef

или добавьте Import-Module chef в профиль Windows PowerShell по адресу:

~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Этот модуль экспортирует командлеты с такими же названиями, как и командные инструменты — chef-client, knife — встроенные в Chef.

Например:

knife exec -E 'puts ARGV' """&s0meth1ng"""

теперь:

knife exec -E 'puts ARGV' '&s0meth1ng'

и:

knife node run_list set test-node '''role[ssssssomething]'''

теперь:

knife node run_list set test-node 'role[ssssssomething]'

Чтобы отключить эту функцию, выполните следующую команду в Windows PowerShell:

Remove-Module chef

Параметры

У этой команды нет специфических параметров.

Примеры

Нет.

Вывод информации

Используйте аргумент show для отображения информации об узле.

Синтаксис

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

knife node show NODE_NAME (options)

Параметры

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

-a ATTR, --attribute ATTR

Атрибут (или атрибуты) для отображения.

-F json, --format=json

Отобразить вывод в формате JSON.

-l, --long

Отобразить все атрибуты в выводе.

-m, --medium

Отобразить стандартные атрибуты в выводе.

-r, --run-list

Отобразить только run-list.

Примеры

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

Вывод всех данных об узлах

Чтобы просмотреть все данные для узла с именем build, введите:

knife node show build

что вернёт:

Node Name: build
Environment: _default
FQDN:
IP:
Run List:
Roles:
Recipes:
Platform:

Вывод основной информации об узлах

Чтобы вывести основную информацию об узле, укороченную и отформатированную:

knife node show NODE_NAME

Вывод всех данных об узлах, укорочено

Чтобы вывести всю информацию об узле, отформатированную:

knife node show -l NODE_NAME

Вывод атрибутов

Чтобы отобразить один атрибут узла:

knife node show NODE_NAME -a ATTRIBUTE_NAME

где ATTRIBUTE_NAME - что-то вроде kernel или platform.

Чтобы отобразить вложенный атрибут:

knife node show NODE_NAME -a ATTRIBUTE_NAME.NESTED_ATTRIBUTE_NAME

где ATTRIBUTE_NAME - что-то вроде kernel и NESTED_ATTRIBUTE_NAME - что-то вроде machine.

Вывод FQDN

Чтобы получить FQDN для узла с именем i-12345678, введите:

knife node show i-12345678 -a fqdn

что вернёт:

fqdn: ip-10-251-75-20.ec2.internal

Вывод run-list

Чтобы отобразить run-list для узла с именем dev, введите:

knife node show dev -r

Вывод в формате JSON

Чтобы просмотреть информацию в формате JSON, используйте общий параметр -F; для узла с именем devops используйте команду:

knife node show devops -F json

Другие доступные форматы включают text, yaml, и pp.

Вывод в сыром формате JSON

Чтобы отобразить информацию об узле в сыром формате JSON, используйте параметр -l или --long:

knife node show -l -F json NODE_NAME

и/или:

knife node show -l --format=json NODE_NAME

© 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/knife_node/

Spec-Zone.ru

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