Puppet (software)

From Wikipedia, the free encyclopedia
  (Redirected from Puppet (tool))
Jump to: navigation, search
Puppet manually invoked on a client
Developer(s) Puppet Labs
Initial release 2005; 11 years ago (2005)
Stable release 4.6.0 (August 10, 2016; 15 days ago (2016-08-10)[1]) [±]
Preview release 4.0-rc1 (April 15, 2015; 16 months ago (2015-04-15)) [±]
Written in Ruby
Operating system Linux, Unix-like, Microsoft Windows
License Apache for >2.7.0, GPL for prior versions
Website www.puppet.com

In computing, Puppet is an open-source configuration management tool. It runs on many Unix-like systems as well as on Microsoft Windows, and includes its own declarative language to describe system configuration.

Puppet is produced by Puppet Labs, founded by Luke Kanies in 2005. It is written in Ruby and released as free software under the GNU General Public License (GPL) until version 2.7.0 and the Apache License 2.0 after that.[2]


Puppet is designed to manage the configuration of Unix-like and Microsoft Windows systems declaratively. The user describes system resources and their state, either using Puppet's declarative language or a Ruby DSL (domain-specific language). This information is stored in files called "Puppet manifests". Puppet discovers the system information via a utility called Facter, and compiles the Puppet manifests into a system-specific catalog containing resources and resource dependency, which are applied against the target systems. Any actions taken by Puppet are then reported.

Puppet consists of a custom declarative language to describe system configuration, which can be either applied directly on the system, or compiled into a catalog and distributed to the target system via client–server paradigm (using a REST API), and the agent uses system specific providers to enforce the resource specified in the manifests. The resource abstraction layer enables administrators to describe the configuration in high-level terms, such as users, services and packages without the need to specify OS specific commands (such as rpm, yum, apt).

Puppet is model-driven, requiring limited programming knowledge to use.[3]

Platforms and users[edit]

Built to be cross-platform, Puppet works on all major Linux distributions, as well as on other Unix-like systems (Solaris, BSD, Mac OS X, AIX, HP-UX), and has Microsoft Windows support.[4][5]

Puppet is used by the Wikimedia Foundation,[6] ARIN, Mozilla,[7] Reddit,[8] CERN,[9] Dell, Rackspace, Zynga, Twitter, the New York Stock Exchange, PayPal, Disney, Citrix Systems, Spotify, TubeMogul,[10] 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, and Google, among others.[11]

See also[edit]


  1. ^ "Puppet 4.6 Release Notes". Puppet. Retrieved 12 August 2016. 
  2. ^ "Puppet Frequently Asked Questions". Puppet Labs. Retrieved 10 March 2010. 
  3. ^ "Deploying Apache Tomcat Applications With Puppet". tomcatexpert.com. Retrieved 23 January 2015. 
  4. ^ "PE 3.7 » Installing » System Requirements — Documentation — Puppet Labs". puppetlabs.com. Retrieved 23 January 2015. 
  5. ^ "Puppet Open Source » Supported Platforms and System Requirements — Documentation — Puppet Labs". puppetlabs.com. Retrieved 23 January 2015. 
  6. ^ Ever wondered how the Wikimedia servers are configured? — Wikimedia blog. Blog.wikimedia.org (2011-09-19). Retrieved on 2013-12-09.
  7. ^ "ReleaseEngineering/PuppetAgain". mozilla.org. Retrieved 4 March 2015. 
  8. ^ We are sysadmins @ reddit. Ask us anything! : sysadmin. Reddit.com (2012-03-21). Retrieved on 2013-12-09.
  9. ^ "CERN Configuration Management System User Guide". cern.ch. Retrieved 30 March 2015. 
  10. ^ "Puppet Camp Paris: Improving Operations Efficiency With Puppet". shell-tips.com. 2015-04-20. 
  11. ^ Google, VMware, Cisco stuff Puppet with $8.5M

External links[edit]