Puppet | |
---|---|
Тип | Управление конфигурацией |
Разработчик | Puppet Labs[вд] |
Написана на | Ruby |
Операционные системы | UNIX[2], macOS[2], Windows[2] и Linux[2] |
Первый выпуск | 2005 |
Последняя версия | |
Репозиторий | github.com/puppetlabs/pu… |
Лицензия | Apache License 2.0[3] |
Сайт | puppet.com/open-s… (англ.) |
Медиафайлы на Викискладе |
Puppet — кроссплатформенное клиент-серверное приложение, разработанное Puppet Labs[4], которое позволяет централизованно управлять конфигурацией операционных систем и программ, установленных на нескольких компьютерах. Написано на языке программирования Ruby[5]. Наряду с Chef отмечается как одно из самых актуальных средств конфигурационного управления по состоянию на 2013 год[6].
Puppet позволяет просто настроить и впоследствии быстро управлять практически любой сетью на базе любой операционной системы Red Hat Enterprise Linux, CentOS, Fedora, Debian, Ubuntu, OpenSUSE, Solaris, BSD, macOS и Microsoft Windows (через cygwin)[7][8].
Система Puppet достаточно популярна в среде IT-компаний, в частности, её используют Google, Яндекс, Fedora Project, Стэнфордский университет, Red Hat, Siemens IT Solution, SugarCRM[5], Mail.Ru.
Puppet использует модель с открытым ядром. Бесплатная версия была выпущена под лицензией GNU General Public License (GPL) версии 2 до версии 2.7.0, а более поздние версии Puppet используют уже лицензию Apache[9][10]. Версия Puppet Enterprise использует проприетарную лицензию.
Puppet состоит из специального декларативного предметно-ориентированном языка для описания конфигурации системы. Управляется моделью и требует ограниченных знаний в области программирования для использования. Предназначен для декларативного управления конфигурацией Unix-подобных систем и систем Microsoft Windows[11].
Puppet следует клиент-серверной архитектуре. Клиент называется агентом, а сервер — мастером. Для тестирования и простой настройки Puppet можно также использовать как автономное приложение, запускаемое из командной строки.
Puppet Server устанавливается на одном или нескольких серверах, а Puppet Agent устанавливается на всех управляемых машинах. Узлы сети, управляемые с помощью Puppet, периодически опрашивают сервер, получают и применяют внесённые администратором изменения в конфигурацию[12].
Синтаксис ресурса в Puppet:
type { 'title':
attribute => value
}
Пример ресурса, описывающего пользователя в Unix:
user { 'harry':
ensure => present,
uid => '1000',
shell => '/bin/bash',
home => '/var/tmp'
}
Puppet Inc., разработчик Puppet, была основана в 2005 году Люком Каньесом и является частной компанией по разработке ПО для автоматизации информационных технологий (ИТ) со штаб-квартирой в Портленде, штат Орегон, США.
В феврале 2011 года Puppet выпустила свой первый коммерческий продукт Puppet Enterprise, созданный на основе открытого исходного кода с некоторыми дополнительными коммерческими компонентами[13].
В сентябре 2017 года Puppet приобрела компанию Distelli, занимающуюся автоматизацией инфраструктуры. Puppet переименовала VM Dashboard (продукт непрерывной интеграции / непрерывной доставки) в Puppet Pipelines for Applications (для приложений)[14], а K8s Dashboard в Puppet Pipelines for Containers (для контейнеров)[15] и выпустила продукты в октябре 2017 года[16]. В мае 2018 года был выпущен Puppet Discovery – инструмент для обнаружения и управления ресурсами в гибридных сетях[17].
В июне 2018 года Puppet привлекла дополнительно $42 миллиона долларов США[18].
В апреле 2022 года было объявлено, что Puppet приобретена разработчиком программного обеспечения Perforce (штаб-квартира в Миннеаполисе)[19][20]. Впоследствии компания уволила 15 % сотрудников Puppet в Портленде.[21]