Spec-Zone.ru › Chef 18

О узлах

[править на GitHub]

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

Типы узлов, которые можно управлять с помощью Chef, включают, но не ограничиваются:

Тип узла Описание

image

Физический узел обычно представляет собой сервер или виртуальную машину, но это может быть любое активное устройство, подключенное к сети, способное отправлять, принимать и пересылать информацию по коммуникационному каналу. Другими словами, физический узел — это любое активное устройство, подключенное к сети, на котором может работать клиент Chef Infra, а также разрешающее этому клиенту взаимодействовать с сервером Chef Infra.

image

Облачный узел размещается в внешней облачной службе, такой как Amazon Web Services (AWS), OpenStack, Rackspace, Google Compute Engine или Microsoft Azure. Доступны плагины для knife, которые обеспечивают поддержку внешних облачных служб. knife может использовать эти плагины для создания экземпляров в облачных сервисах. После создания можно использовать Chef Infra Client для развертывания, настройки и обслуживания этих экземпляров.

image

Виртуальный узел — это машина, которая работает только как программная реализация, но в остальном ведет себя как физическая машина.

image

Сетевой узел — это любое сетевое устройство (коммутатор, маршрутизатор), которое управляется клиентом Chef Infra, например сетевые устройства Juniper Networks, Arista, Cisco и F5. Используйте Chef для автоматизации распространённых сетевых конфигураций, таких как свойства физических и логических Ethernet-соединений и VLAN на этих устройствах.

image

Контейнеры — это подход к виртуализации, позволяющий одной операционной системе разместить множество рабочих конфигураций, где каждая рабочая конфигурация (контейнер) получает одну задачу, изолированную от всех остальных задач. Контейнеры пользуются популярностью как способ управления распределёнными и масштабируемыми приложениями и службами.

Ключевые компоненты узлов, которые находятся под управлением Chef, включают:

Компонент Описание

image

Chef Infra Client — это агент, который работает локально на каждом узле, находящемся под управлением сервера Chef Infra. При запуске Chef Infra Client выполняет все необходимые шаги для приведения узла к ожидаемому состоянию, включая:

  • Регистрацию и аутентификацию узла на сервере Chef Infra
  • Синхронизацию кулинарных книг с сервера Chef Infra на узел
  • Компиляцию коллекции ресурсов, загружая каждую из необходимых кулинарных книг, включая рецепты, атрибуты и все другие зависимости
  • Выполнение необходимых действий для настройки узла на основе рецептов и атрибутов
  • Отчёт о сводной информации о выполнении в Chef Automate
Chef Infra Client аутентифицируется на сервере Chef Infra с помощью пар публичных и закрытых ключей RSA каждый раз, когда клиенту Chef Infra нужен доступ к данным, хранящимся на сервере Chef Infra. Это предотвращает доступ любого узла к данным, на которые у него нет прав, и гарантирует, что управлять можно только узлами, должным образом зарегистрированными на сервере Chef Infra.

image

Ohai — это инструмент для сбора данных о конфигурации системы, которые затем предоставляются клиенту Chef Infra для использования в кулинарных книгах. Chef Infra Client запускает Ohai в начале каждого выполнения Chef Infra для определения состояния системы. Атрибуты, собранные Ohai, называются automatic attributes. Chef Infra Client использует эти атрибуты, чтобы гарантировать, что узлы находятся в желаемом состоянии после каждого выполнения настройки.

Типы атрибутов, собираемых Ohai, включают, но не ограничиваются:

  • Операционная система
  • Сеть
  • Память
  • Диск
  • Процессор
  • Ядро
  • Имена хостов
  • Полные доменные имена
  • Виртуализация
  • Метаданные поставщика облачных услуг

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

Имена узлов

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

 /^[\-[:alnum:]_:.]+$/

Имя узла можно получить из атрибута node_name в файле client.rb или разрешив Ohai собрать эти данные во время выполнения Chef Infra Client. Когда Ohai собирает эти данные во время выполнения Chef Infra Client, он использует FQDN узла, который всегда уникален в организации, как имя узла.

Использование FQDN в качестве имени узла и последующее предоставление Ohai возможность сбора этой информации во время каждого выполнения Chef Infra Client — это рекомендуемый подход и самый простой способ гарантировать уникальность имён всех узлов в организации.

Объекты узлов

Для Chef Infra Client два важнейших аспекта узлов — это группы атрибутов и списки выполнения. Атрибут — это конкретный фрагмент данных об узле, например сетевой интерфейс, файловая система, количество клиентов, которые может принять работающая на узле служба, и так далее. Список выполнения — это упорядоченный список рецептов и/или ролей, которые выполняются в строго определённом порядке. Объект узла состоит из списка выполнения и атрибутов узла, что представляет собой файл в формате JSON, хранящийся на сервере Chef Infra. Chef Infra Client получает копию объекта узла с сервера Chef Infra во время каждого выполнения Chef Infra Client и помещает обновлённую копию на сервер Chef Infra в конце каждого выполнения Chef Infra Client.

Атрибут — это конкретная деталь об узле. Атрибуты используются клиентом Chef Infra для понимания:

  • Текущего состояния узла
  • Состояния узла в конце предыдущего выполнения Chef Infra Client
  • Состояния узла в конце текущего выполнения Chef Infra Client

Атрибуты определяются:

  • Узлом, сохранённым на сервере Chef Infra
  • Атрибутами, переданными в формате JSON в командной строке
  • Кулинарными книгами (в файлах атрибутов и/или рецептах)
  • Политика файлами

Во время каждого выполнения Chef Infra Client, клиент Chef Infra Client строит список атрибутов, используя:

  • Атрибуты, переданные в формате JSON в командной строке
  • Данные об узле, собранные Ohai.
  • Объект узла, сохранённый на сервере Chef Infra в конце предыдущего выполнения Chef Infra Client.
  • Перестроенный объект узла из текущего выполнения Chef Infra Client, обновлённый для изменений в кулинарных книгах (файлах атрибутов и/или рецептах) и/или политики файлах, и обновлённый для любых изменений в состоянии самого узла.

После перестройки объекта узла все атрибуты сравниваются, а затем узел обновляется на основе приоритета атрибутов. В конце каждого выполнения Chef Infra Client объект узла, определяющий текущее состояние узла, загружается на сервер Chef Infra для индексации в целях поиска.

Атрибуты

Атрибут — это конкретная деталь об узле, например IP-адрес, имя хоста, список загруженных модулей ядра, версия(и) доступных языков программирования и так далее. Атрибут может быть уникальным для конкретного узла или идентичным для каждого узла в организации. Атрибуты чаще всего устанавливаются из кулинарной книги, с помощью knife или извлекаются Ohai с каждого узла перед каждым выполнением Chef Infra Client. Все атрибуты индексируются для поиска на сервере Chef Infra. Хорошие кандидаты на атрибуты:

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

В целом, приоритет атрибутов настроен для того, чтобы кулинарные книги и роли могли определять атрибуты по умолчанию, для обычных атрибутов — определять значения, которые должны быть конкретными для узла, и для атрибутов переопределения — принудительно устанавливать определённое значение, даже если узел уже имеет это значение.

Один из подходов — установить атрибуты на одном уровне приоритета, установив атрибуты в файлах атрибутов кулинарной книги, а затем также установив те же атрибуты по умолчанию (но с различными значениями) с помощью роли. Атрибуты, установленные в роли, будут глубоко объединены поверх атрибутов из файла атрибутов, и атрибуты, установленные ролью, будут иметь приоритет над атрибутами, указанными в файлах атрибутов кулинарной книги.

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

Списки выполнения

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

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

Формат списка выполнения

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

"role[NAME]"

или

"recipe[COOKBOOK::RECIPE]"

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

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

Управление узлами

Узлы можно управлять напрямую с помощью Knife, Chef Automate или с помощью инструментов командной строки, специфичных для Chef Infra Client.

  • Нож можно использовать для создания, редактирования, просмотра, перечисления, добавления тегов и удаления узлов.
  • Плагины для Ножа могут использоваться для создания, редактирования и управления узлами, расположенными на поставщиках облачных услуг.
  • Клиент Chef Infra может использоваться для управления данными узла с помощью командной строки и файлов JSON. Каждый файл JSON содержит хеш, элементы которого добавляются в качестве атрибутов узла. Кроме того, настройка run_list позволяет добавлять роли и/или рецепты к узлу.
  • Командная строка также может использоваться для редактирования файлов JSON и файлов, связанных с сторонними сервисами, такими как Amazon EC2, где файлы JSON могут содержать метаданные для каждого экземпляра, которые хранятся в файле на диске, а затем считываются клиентом 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/nodes/

Spec-Zone.ru

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