Spec-Zone.ru › Chef 16

узел ножа

[edit on 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'

добавление в список задач

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

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

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

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

"role[NAME]"

или

"recipe[COOKBOOK::RECIPE]"

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

"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 добавляет необязательную функцию в пакет Microsoft Installer (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-apply — входящие в состав 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

Добавить элемент списка задач после указанного элемента.

-b ITEM, --before ITEM

Добавить элемент списка задач перед указанным элементом.

Примечание

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

Примеры

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

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

Для добавления роли в список задач введите:

knife node run_list add NODE_NAME 'role[ROLE_NAME]'

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

Для добавления ролей и рецептов в список задач введите:

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

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

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

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

Добавление рецепта с помощью кулинарной книги

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

knife node run_list add NODE_NAME 'COOKBOOK::RECIPE_NAME'

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

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

knife node run_list add NODE_NAME 'COOKBOOK'

удаление из списка задач

Используйте аргумент run_list remove для удаления элементов списка запуска (ролей или рецептов) из узла. Рецепт должен быть в одном из следующих форматов: полное имя, кулинарная книга или по умолчанию. Как роли, так и рецепты должны быть в кавычках, например: '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

Параметры

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

Примечание

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

Примеры

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

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

Для удаления роли из списка запуска введите:

knife node run_list remove NODE_NAME 'role[ROLE_NAME]'

Удаление списка запуска

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

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

run_list set

Используйте аргумент run_list set для установки списка запуска для узла. Рецепт должен быть в одном из следующих форматов: полное имя, кулинарная книга или по умолчанию. Как роли, так и рецепты должны быть в кавычках, например: "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 (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-apply — встроенные в 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

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

Синтаксис

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

knife node show NODE_NAME (options)

Параметры

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

-a ATTR, --attribute ATTR

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

-F json, --format=json

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

-l, --long

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

-m, --medium

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

-r, --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

Показать список запуска

Для просмотра списка запуска для узла с именем 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