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

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

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

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

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

"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.

Например:

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]'

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

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

knife node run_list add NODE_NAME 'COOKBOOK::RECIPE_NAME'

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

Чтобы добавить рецепт по умолчанию cookbook в список выполнения, введите:

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

Параметры

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

Примечание

См. config.rb для получения дополнительной информации о том, как добавить определенные параметры knife в качестве настроек в файл 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 из командной строки Windows строка должна быть заключена в одинарные кавычки (' '). Например:

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 Package (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/knife_node/

Spec-Zone.ru

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