Puppet (программа) |
Автор: admin Просмотров: 2889 Комментарии:
Добавлен: 25 января 2017
Обновлено: 25.01.2017 - 15:23
Инструмент управления конфигурациями. Работает на Unix-подобных системах и на Microsoft Windows и имеет свой декларированный язык для описания системных конфигураций.
Puppet написан на Ruby и является свободным программным обеспечением с лицензией Apache License 2.0 и лицензией GPL в старых версиях.
Обзор программы Puppet
Puplet предназначен для декларативного управления конфигурациями Unix и Windows систем. Пользователь описывает системные ресурсы и их состояние с помощью декларативного языка Puplet или Ruby DSL (предметно-ориентированный язык). Эта информация хранится в файлах под названием "Puppet manifests". Puppet находит системную информацию с помощью утилиты Facter и компилирует Puppet манифест в конкретный системный каталог, содержащий ресурсы и зависимости ресурсов, которые применяются в отношении целевых систем. Любые действия Puppet отправляются в отчёты.
Pupplet состоит из пользовательского декларативного языка для описания конфигурации системы, которую можно применять непосредственно к системе или скомпилировать в каталог и распространять на целевую систему через клиент-сервереную парадигму с использованием REST API, а агент использует конкретные поставщики системных ресурсов для обеспечения ресурсов, которые указаны в манифестах. Абстрактный слой ресурсов позволяет администраторам описывать высокоуровневые конфигурации, такие как пользователи, сервисы и пакеты без необходимости указания команд операционной системы (такие команды как rpm, yum, apt).
Pupplet имеет архитектуру управляемую моделями, не требующую серьёзных знаний программирования для использования.
Pupplet поставляется в двух вариантах: Puppet Enterprice (коммерческий) и Open Source Puppet (с бесплатными исходниками). В дополнение к свободной версии, Puppet Enterprise предоставляет графический интерфейс (GUI), API и консольные инструменты для управления нодами (узлами).
Архитектура программы Puppet
Pupplet обычно следует клиент-серверной архитектуре. Клиент известен как агент, а сервер как мастер. Puppet также может использоваться как автономное приложение.
Puppet Master устанавливается на один или несколько серверов, а на системы нужно установить Puppet Agent. Puppet Agents взаимодействует с сервером и получает инструкции по конфигурациям. Агент затем применяет конфигурацию на системе и отправляет отчет о состоянии сервера. Устройства могут загружать Puppet Agent как демон, который может периодически запускаться через задания cron или вручную, если необходимо.
Pupplet состоит из:
Язык конфигураций: в Puppet, элементы, которые необходимо настроить, называются ресурсами. Так как Puppet использует декларативное программирование, ему необходимо указать действие 'what', что должно быть выполнено на ресурсах. Действие декларирует три вещи на ресурсах: их тип, название и список атрибутов состояний, которые необходимо настроить. Код Puppet записывается в файлах, называемых манифестами. Они хранятся на сервере и содержит инструкции по настройке каждого клиента. Формат для записи файлов манифеста приведен ниже:
type { 'title':attribute => value}
Пример:
user { 'harry': ensure => present, uid => '1000', shell => '/bin/bash', home => '/var/tmp'}
Абстракция ресурсов. Pupplet обеспечивает абстракцию ресурсов, предоставляя возможность настраивать ресурсы на различных платформах не беспокоясь о зависимостях платформы. Например, если пользователь хочет установить пакет на трех различных платформах, ему не придется беспокоиться о требуемом типе пакета данной платформы и его зависимостях, Pupplet заботится об этом с помощью Facter. Facter это часть информации, которую агент отправляет серверу описывая какая используется операционная система, IP, имя хоста (hostname) и т.д. Косвенно говоря, это способ информирования Pupplet относительно того что нужно выполнить в данном случае в зависимости от фактов, собранных facter. Для любого типа ресурсов существует целый ряд провайдеров. Провайдеры имеют инструменты управления пакетами, соответствующих различным платформ и операционных систем. Эти поставщики определяют как нужно управлять ресурсами.
Транзакции. Этапы выполнения:
1. Каждый агент отправляет через facter к мастеру.
2. Pupplet поддерживает графическое представление списка ресурсов и их зависимостей изображающих порядок, по которому они должны быть настроены в каталог для каждого клиента. Мастер посылает этот каталог клиенту.
3. Конфигурация, которая уже присутствует в системе известна как актуальное состояние и упоминается в файле манифеста как желаемое состояние. Агент применяет конфигурацию на систему только тогда, когда актуальное состояние не совпадает с желаемым состоянием. Предложение о применении изменённого состояния только при необходимости, называется идемпотентностью и является ключевой особенностью Pupplet.
4. Результат о применении конфигурации передаётся через сервер.
Характеристики программы Puppet
- Pupplet довольно гибкий. Так как его исходные коды открыты, пользовательские библиотеки и модули можно переписать согласно своим потребностям.
- Заботиться о своём хосте на протяжении всего жизненного цикла от начала до конца, включая начальные настройки, установку, обновление и модернизацию.
- Повышает управляемость и производительность.
- Автоматизирует повторяющиеся задачи.
- Повторное использование ресурсов на различных платформах.
Платформы программы Puppet
Построенный, чтобы быть кросс-платформенным, Pupplet работает на всех основных дистрибутивах GNU/Linux, а также на других Unix-подобных операционных системах (Solaris, BSD, Mac OS X, AIX, HP-UX) и поддерживает Microsoft Windows.
Puppet используется на Wikimedia Foundation, ARIN, Mozilla, Reddit, CERN, Dell, Rackspace, Zynga, Twitter, the New York Stock Exchange, PayPal, Disney, Citrix Systems, Spotify, TubeMogul, Oracle, Yandex, the University of California Los Angeles, the University of North Texas, the Los Alamos National Laboratory, Stanford University, Purdue University, Lexmark, QVC, Intel, Bright Computing и Google.
https://en.wikipedia.org/wiki/Puppet_(software)
Скачать можно по ссылке: https://github.com/puppetlabs/puppet
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: База данных управления конфигурациями
Лицензия:
Apache2
Интерфейс графический
Интерфейс консольный
Интерфейс фоновый(daemon)
Язык программирования:
Ruby
Сайт проекта
Скачать Puppet (программа)
Комментарии |