Spec-Zone.ru › Chef 16

О узлах

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

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

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

Тип узла Описание
image Физический узел — это обычно сервер или виртуальная машина, но это может быть любое активное устройство, подключенное к сети, способное отправлять, получать и пересылать информацию по каналу связи. Другими словами, физический узел — это любое активное устройство, подключенное к сети, на котором может работать Клиент Chef Infra, и которое также позволяет этому Клиенту Chef Infra взаимодействовать с Сервером Chef Infra.
image Облачный узел размещается в внешней облачной службе, такой как Amazon Web Services (AWS), OpenStack, Rackspace, Google Compute Engine или Microsoft Azure. Для внешних облачных служб доступны плагины для knife, которые обеспечивают поддержку. knife может использовать эти плагины для создания экземпляров в облачных службах. После создания экземпляры можно развернуть, настроить и обслуживать с помощью Клиента Chef Infra.
image Виртуальный узел — это машина, которая работает только как программная реализация, но в остальном ведет себя как физическая машина.
image Сетевой узел — это любое сетевое устройство — коммутатор, маршрутизатор — которое управляется Клиентом Chef Infra, например, сетевые устройства Juniper Networks, Arista, Cisco и F5. Используйте Chef для автоматизации стандартных сетевых конфигураций, таких как свойства физических и логических Ethernet-соединений и VLAN на этих устройствах.
image Контейнеры — это подход к виртуализации, который позволяет одной операционной системе размещать множество рабочих конфигураций, где каждой рабочей конфигурации — контейнеру — назначается единственная ответственность, изолированная от всех других. Контейнеры популярны как способ управления распределёнными и масштабируемыми приложениями и службами.

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

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

image

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

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

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

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

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

Атрибуты, которые собирает Ohai, являются атрибутами уровня автоматизации, т. е. эти атрибуты используются Клиентом Chef Infra для обеспечения неизменности этих атрибутов после завершения Клиентом Chef Infra настройки узла.

Имена узлов

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

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

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

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

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

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

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

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

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

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

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

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

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

Атрибуты

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

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

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

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

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

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

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

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

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

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

"role[NAME]"

или

"recipe[COOKBOOK::RECIPE]"

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

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

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

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

  • Knife можно использовать для создания, редактирования, просмотра, перечисления, маркирования и удаления узлов.
  • Плагины Knife могут использоваться для создания, редактирования и управления узлами, расположенными на облачных провайдерах.
  • Клиент 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