Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислениях , кукольный является управление конфигурацией программного обеспечения инструментом , который включает в свой собственный язык декларативного описания конфигурации системы . Это решение на основе модели, для использования которого требуются ограниченные знания в области программирования. [4]

Puppet производится компанией Puppet, Inc, основанной Люком Кэниэс в 2005 году. Основной продукт Puppet, Puppet Enterprise [5], является коммерчески поддерживаемой версией его продукта с открытым исходным кодом. Программное обеспечение для автоматизации Puppet использует декларативный язык Puppet для управления различными этапами жизненного цикла ИТ-инфраструктуры , включая выделение ресурсов , установку исправлений , настройку и управление компонентами операционной системы и приложений в корпоративных центрах обработки данных и облачных инфраструктурах . [6]

Puppet использует модель с открытым ядром ; его версия бесплатного программного обеспечения была выпущена под версией 2 Стандартной общественной лицензии GNU (GPL) до версии 2.7.0, [7] и более поздние выпуски используют лицензию Apache , в то время как Puppet Enterprise использует частную лицензию.

Созданные как кроссплатформенное программное обеспечение, Puppet и Puppet Enterprise работают в нескольких Unix-подобных системах (включая Linux, а также Solaris , BSD , Mac OS X , AIX , HP-UX ) и имеют поддержку Microsoft Windows . [8] [9] Сам Puppet написан на Ruby , в то время как Facter написан на C ++ , а Puppet Server и Puppet DB написаны на Clojure . [10]

Дизайн [ править ]

Puppet предназначен для декларативного управления конфигурацией Unix-подобных систем и Microsoft Windows . Пользователь описывает системные ресурсы и их состояние, используя декларативный язык Puppet или Ruby DSL ( предметно-ориентированный язык ). Эта информация хранится в файлах, называемых «манифестами марионеток». Puppet обнаруживает системную информацию с помощью утилиты под названием Facter и компилирует манифест Puppet в системный каталог, содержащий ресурсы и зависимости ресурсов, которые применяются к целевым системам. Затем сообщается обо всех действиях, предпринятых Puppet.

Puppet состоит из настраиваемого декларативного языка для описания конфигурации системы, который может быть либо применен непосредственно в системе, либо скомпилирован в каталог и распространен в целевую систему через парадигму клиент-сервер (с использованием REST API ), а агент использует систему определенных поставщиков для принудительного использования ресурса, указанного в манифестах. Уровень абстракции ресурсов позволяет администраторам описывать конфигурацию в терминах высокого уровня, таких как пользователи, службы и пакеты, без необходимости указывать команды, специфичные для ОС (такие как rpm, yum, apt).

Puppet управляется моделями и требует ограниченных знаний в области программирования. [11]

Puppet поставляется в двух версиях: Puppet Enterprise и Open Source Puppet. Помимо предоставления функций Open Source Puppet, Puppet Enterprise также предоставляет инструменты с графическим интерфейсом , API и командной строки для управления узлами.

Архитектура [ править ]

Марионетка, вызываемая на клиенте вручную

Puppet обычно следует архитектуре клиент-сервер . Клиент известен как агент, а сервер известен как мастер. Для тестирования и простой настройки его также можно использовать как автономное приложение, запускаемое из командной строки.

Puppet Server установлен на одном или нескольких серверах, а Puppet Agent установлен на всех машинах, которыми пользователь хочет управлять. Агенты Puppet связываются с сервером и получают инструкции по настройке. Затем агент применяет конфигурацию в системе и отправляет отчет о состоянии на сервер. [12] Устройства могут запускать Puppet Agent как демон , который можно периодически запускать как задание cron или запускать вручную, когда это необходимо.

Язык программирования Puppet - это декларативный язык, который описывает состояние компьютерной системы в терминах «ресурсов», которые представляют собой базовые конструкции сети и операционной системы. Пользователь собирает ресурсы в манифесты, которые описывают желаемое состояние системы. Эти манифесты хранятся на сервере и по запросу компилируются в инструкции по настройке для агентов. [13]

Синтаксис ресурса марионетки:

type  {  'title' :  attribute  =>  value }

Пример ресурса, представляющего пользователя Unix :

пользователь  {  'harry' :  sure  =>  present ,  uid  =>  '1000' ,  shell  =>  '/ bin / bash' ,  home  =>  '/ var / tmp' }

Puppet позволяет пользователям настраивать системы независимо от платформы, представляя концепции операционной системы в виде структурированных данных. Вместо того, чтобы указывать точные команды для выполнения системного действия, пользователь создает ресурс, который затем Puppet переводит в системные инструкции, которые отправляются на настраиваемую машину. Например, если пользователь хочет установить пакет на трех разных узлах, на каждом из которых работает другая операционная система, он может просто объявить один ресурс, и Puppet определит, какие команды необходимо выполнить, на основе данных, полученных от Facter, программа, которая собирает данные о системе, в которой она работает, включая ее операционную систему, IP-адрес и некоторую информацию об оборудовании. [14] Провайдеры на узле используют факты Facter и другие сведения о системе для преобразования типов ресурсов в каталоге в машинные инструкции, которые фактически будут настраивать узел.

Обычный запуск Puppet состоит из следующих этапов:

  1. Агент отправляет факты от Facter мастеру.
  2. Puppet строит график списка ресурсов и их взаимозависимостей, представляющий порядок, в котором они должны быть настроены, для каждого клиента. Мастер отправляет соответствующий каталог каждому узлу агента.
  3. Затем фактическое состояние системы настраивается в соответствии с желаемым состоянием, описанным в файле манифеста. Если система уже находится в желаемом состоянии, Puppet не будет вносить никаких изменений, делая транзакции идемпотентными .
  4. Наконец, агент отправляет мастеру отчет с подробным описанием внесенных изменений и возникших ошибок.

Поставщик [ править ]

Основатель Puppet Люк Канис

Поставщик Puppet, Puppet, Inc, является частной компанией по автоматизации информационных технологий (ИТ), базирующейся в Портленде, штат Орегон .

В 2005 году Puppet был основан бывшим генеральным директором Люком Канисей. [16] 29 января 2019 г. Ивонн Вассенаар сменила Санджая Мирчандани на посту генерального директора. Вассенаар занимал ключевые руководящие должности в Airware, New Relic и VMware.

В феврале 2011 года Puppet выпустила свой первый коммерческий продукт Puppet Enterprise, построенный на основе открытого исходного кода и предоставляющий коммерческим пользователям улучшенное удобство использования, а также некоторые коммерческие компоненты. [18] В сентябре 2011 года компания выпустила кукольный Enterprise 2.0, введенной интеграцию с MCollective, приобретенного Кукольным в 2010 году, [19] , а также резервы для виртуальных машин непосредственно на Amazon EC2 и VMware . [20] В июне 2013 года Puppet выпустила Puppet Enterprise 3.0 с переписанным механизмом оркестровки, который упростит автоматическое развертывание изменений на нескольких сайтах и ​​в облаках. [21]

Puppet приобрела Distelli для автоматизации инфраструктуры в сентябре 2017 года. [22] Puppet переименовал Distelli VM Dashboard ( продукт непрерывной интеграции / непрерывной доставки ) в Puppet Pipelines for Applications, [23] и K8S Dashboard в Puppet Pipelines for Containers. [24] Продукты стали общедоступными в октябре 2017 года. [25]

Puppet выпустил Puppet Discovery, инструмент для обнаружения и управления ресурсами в гибридных сетях, в мае 2018 года. [26] Это третий автономный корпоративный продукт Puppet.

В июне 2018 года Puppet привлекла 42 миллиона долларов, что в сумме составляет 150 миллионов долларов финансирования. В раунде, который возглавляла Cisco, участвовали Kleiner Perkins, True Ventures, EDBI и VMware. [27]

Puppet является партнером и имеет технологическую интеграцию с VMware , Amazon Web Services , Cisco , OpenStack , Microsoft Azure , Eucalyptus , Rightscale и Zenoss. [28]

См. Также [ править ]

  • Сравнение программного обеспечения для управления конфигурацией с открытым исходным кодом

Ссылки [ править ]

  1. ^ "Примечания к выпуску Puppet" . Проверено 22 октября 2019 года .
  2. ^ «Развитие марионетки на следующие 10 лет» . Люк Канис. 2014-09-23 . Проверено 26 мая 2017 .
  3. ^ Основное лицензионное соглашение Puppet
  4. ^ DeHaan, МП. «Развертывание приложений Apache Tomcat с помощью Puppet» . tomcatexpert.
  5. Рао, Лина. «Cisco, Google Ventures, VMware вложили 8,5 млн долларов в запуск Puppet Labs для автоматизации центров обработки данных» . TechCrunch.
  6. ^ Гранер, Янтарь. "Puppet Labs объявляет о кукольном предприятии" .
  7. ^ «Часто задаваемые вопросы о марионетках» . Кукольные лаборатории. Архивировано из оригинального 20 марта 2016 года . Проверено 10 марта 2010 года .
  8. ^ «Документы: PE 2.0 - Установка - Системные требования» . Марионетка.
  9. ^ "Системные требования Puppet" . Марионетка.
  10. ^ «Развитие марионетки на следующие 10 лет» . Люк Канис. 2014-09-23 . Проверено 26 мая 2017 .
  11. ^ «Развертывание приложений Apache Tomcat с помощью Puppet» . tomcatexpert.com . Проверено 23 января 2015 года .
  12. ^ «Обзор архитектуры Puppet - Документация - Puppet» . docs.puppet.com . Архивировано из оригинала на 2016-10-01 . Проверено 14 сентября 2016 .
  13. ^ Крум, Hevelingen, Kero, Тернбулл, McCune (9 декабря 2013). Pro Puppet . Апресс. ISBN 978-1430260400.CS1 maint: несколько имен: список авторов ( ссылка )
  14. ^ https://puppet.com/docs/facter
  15. ^ a b «Обзор компании Puppet Labs, Inc.» . Bloomberg Businessweek.
  16. ^ a b c "Кукольные лаборатории" . Crunchbase.
  17. ^ "Марионеточное предприятие" . Марионетка.
  18. ^ Кернер, Шон Майкл. «Марионетка идет после управления корпоративной системой» . Планета корпоративных сетей.
  19. Рао, Лина. «Компания Puppet Labs, занимающаяся запуском автоматизации центра обработки данных, приобретает проект с открытым исходным кодом The Marionette Collective» . TechCrunch.
  20. ^ Финли, Клинт. «Puppet 2.0 будет поддерживать Amazon EC2 и VMware Provisioning» . Кремниевый угол.
  21. ^ Новый инструмент Puppet улучшает автоматизацию оркестровки для корпоративного использования - Tech News and Analysis . Gigaom.com (25 июня 2013 г.). Проверено 9 декабря 2013.
  22. ^ https://puppet.com/blog/welcome-distelli-to-puppet-family
  23. ^ "Архивная копия" . Архивировано из оригинала на 2018-07-07 . Проверено 7 июля 2018 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  24. ^ "Архивная копия" . Архивировано из оригинала на 2018-07-07 . Проверено 7 июля 2018 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  25. ^ https://puppet.com/blog/introduction-puppet-pipelines-and-puppet-container-registry
  26. ^ https://puppet.com/blog/announcing-puppet-discovery-general-availability
  27. ^ «Puppet привлекает 42 миллиона долларов во главе с Cisco, поскольку ее платформа автоматизации DevOps охватывает 40 000 предприятий» . TechCrunch . Проверено 22 марта 2019 .
  28. Рао, Лина. «Cisco, Google Ventures, VMware вложили 8,5 млн долларов в запуск Puppet Labs для автоматизации центров обработки данных» . TechCrunch.

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Puppetlabs на GitHub
  • Официальный канал Puppet Labs на YouTube
  • Дергание за ниточки с марионеткой: упрощенное управление конфигурацией ( ISBN 978-1-59059-978-5 ) 
  • Pro Puppet ( ISBN 978-1-4302-3057-1 ) 
  • Learning Puppet 4 ( ISBN 978-1-4919-0766-5 )