Учебники

Кукольный — Обзор

Puppet — это инструмент управления конфигурацией, разработанный Puppet Labs для автоматизации управления инфраструктурой и ее конфигурации. Puppet — очень мощный инструмент, который помогает понять концепцию инфраструктуры как кода. Этот инструмент написан на языке Ruby DSL, который помогает конвертировать полную инфраструктуру в формат кода, которым легко управлять и настраивать.

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

Особенности кукольной системы

Ниже приведены наиболее важные функции Puppet.

идемпотентность

Puppet поддерживает Idempotency, что делает его уникальным. Как и в Chef, в Puppet можно безопасно запускать один и тот же набор конфигурации несколько раз на одной и той же машине. В этом потоке Puppet проверяет текущее состояние целевой машины и вносит изменения только при наличии каких-либо конкретных изменений в конфигурации.

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

Кросс-платформенная

В Puppet с помощью Resource Abstraction Layer (RAL), который использует ресурсы Puppet, можно ориентироваться на указанную конфигурацию системы, не беспокоясь о деталях реализации и о том, как команда конфигурации будет работать внутри системы, которые определены в базовой конфигурации. файл.

Кукольный — Рабочий процесс

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

Workflow

  • В Puppet первое, что делает мастер Puppet, это собирает информацию о целевой машине. Используя коэффициент, который присутствует на всех узлах Puppet (аналогично Ohai в Chef), он получает все детали конфигурации уровня машины. Эти данные собираются и отправляются обратно Хозяину Марионеток.

  • Затем мастер марионеток сравнивает извлеченную конфигурацию с определенными деталями конфигурации и с определенной конфигурацией создает каталог и отправляет его целевым агентам Puppet.

  • Затем агент Puppet применяет эти конфигурации, чтобы привести систему в нужное состояние.

  • Наконец, когда целевой узел находится в желаемом состоянии, он отправляет отчет мастеру Puppet, который помогает мастеру Puppet понять, где находится текущее состояние системы, как определено в каталоге.

В Puppet первое, что делает мастер Puppet, это собирает информацию о целевой машине. Используя коэффициент, который присутствует на всех узлах Puppet (аналогично Ohai в Chef), он получает все детали конфигурации уровня машины. Эти данные собираются и отправляются обратно Хозяину Марионеток.

Затем мастер марионеток сравнивает извлеченную конфигурацию с определенными деталями конфигурации и с определенной конфигурацией создает каталог и отправляет его целевым агентам Puppet.

Затем агент Puppet применяет эти конфигурации, чтобы привести систему в нужное состояние.

Наконец, когда целевой узел находится в желаемом состоянии, он отправляет отчет мастеру Puppet, который помогает мастеру Puppet понять, где находится текущее состояние системы, как определено в каталоге.

Кукольный — Ключевые компоненты

Ниже приведены ключевые компоненты Puppet.

Ключевые компоненты

Кукольные Ресурсы

Кукольные ресурсы являются ключевыми компонентами для моделирования любой конкретной машины. Эти ресурсы имеют свою собственную модель реализации. Puppet использует ту же модель, чтобы получить любой конкретный ресурс в желаемом состоянии.

Провайдеры

Поставщики в основном являются исполнителями любого конкретного ресурса, используемого в Puppet. Например, типы пакетов ‘apt-get’ и ‘yum’ допустимы для управления пакетами. Иногда на конкретной платформе может быть доступно более одного поставщика. Хотя у каждой платформы всегда есть поставщик по умолчанию.

манифест

Манифест — это набор ресурсов, которые связаны внутри функции или классов для настройки любой целевой системы. Они содержат набор кода Ruby для настройки системы.

Модули

Модуль является ключевым строительным блоком Puppet, который может быть определен как набор ресурсов, файлов, шаблонов и т. Д. Они могут быть легко распределены по различным типам ОС, если они определены как имеющие один и тот же вид. Поскольку они могут быть легко распределены, один модуль может использоваться несколько раз с одной и той же конфигурацией.

Шаблоны

Шаблоны используют выражения Ruby для определения настраиваемого содержимого и ввода переменных. Они используются для разработки пользовательского контента. Шаблоны определяются в манифестах и ​​копируются в место в системе. Например, если кто-то хочет определить httpd с настраиваемым портом, то это можно сделать с помощью следующего выражения.

Listen <% = @httpd_port %>

Переменная httpd_port в этом случае определяется в манифесте, который ссылается на этот шаблон.

Статические файлы

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