{{Short description|Open source configuration management software}} {{Infobox software | name = Puppet | logo = Perforce-Puppet-Logo.svg | screenshot = | caption = Puppet manually invoked on a client | collapsible = | author = | developer = Perforce | released = {{release date and age|2005}} | latest release version = {{wikidata|property|P348}} | latest release date = {{Start date and age|{{wikidata|qualifier|P348|P577}}|df=yes}} | programming language = Clojure from 4.0,<ref>{{cite web|url=https://puppet.com/blog/evolving-puppet-for-next-10-years |title=Evolving Puppet for the Next 10 Years |publisher=Luke Kanies |date=2014-09-23 |access-date=2017-05-26}}</ref> Ruby | operating system = Linux, Unix-like, Microsoft Windows | platform = | size = | language = | genre = {{ubl|Software configuration management|Infrastructure as Code}} | license = Open Source Puppet: Apache for >2.7.0, GPL for prior versions. <br>Puppet Enterprise: proprietary<ref>{{Cite web |url=https://puppet.app.box.com/v/2018-master-license-agreement |title=Puppet Master License Agreement |access-date=2019-02-07 |archive-date=2019-08-04 |archive-url=https://web.archive.org/web/20190804062636/https://puppet.app.box.com/v/2018-master-license-agreement |url-status=dead }}</ref> | website = {{URL|https://puppet.com/}} }}
'''Puppet''' is a software configuration management tool used to manage stages of the IT infrastructure lifecycle.<ref name="linuxpromagazine">{{cite web|last=Graner|first=Amber|title=Puppet Labs Announces Puppet Enterprise|url=http://www.linuxpromagazine.com/Online/News/Puppet-Labs-Announces-Puppet-Enterprise}}</ref>
Puppet uses an open-core model; its free-software version was released under version 2 of the GNU General Public License (GPL) until version 2.7.0,<ref>{{cite web |url= http://docs.puppetlabs.com/guides/faq.html |title= Puppet Frequently Asked Questions |publisher= Puppet Labs |access-date= 10 March 2010 |archive-url= https://web.archive.org/web/20160320040505/https://docs.puppetlabs.com/guides/faq.html |archive-date= 20 March 2016 |url-status= dead }}</ref> and later releases use the Apache License, while Puppet Enterprise uses a proprietary license. Puppet and Puppet Enterprise operate on multiple Unix-like systems (including Linux, Solaris, BSD, Mac OS X, AIX, HP-UX) and has Microsoft Windows support.<ref>{{cite web|title=Docs: PE 2.0 - Installing - System Requirements|url=http://docs.puppet.com/pe/2.0/install_system_requirements.html|publisher=Puppet}}</ref><ref>{{cite web|title=Puppet system requirements|url=https://puppet.com/docs/puppet/5.5/system_requirements.html|publisher=Puppet}}</ref> Puppet itself is written in Ruby. Facter, Puppet’s cross-platform system profiling library, is also written in Ruby. Puppet Server and Puppet DB are written in Clojure.<ref>{{cite web|url=https://puppet.com/blog/evolving-puppet-for-next-10-years |title=Evolving Puppet for the Next 10 Years |publisher=Luke Kanies |date=2014-09-23 |access-date=2017-05-26}}</ref>
It is developed by Puppet Inc., which is owned by Perforce, which is owned in turn by private equity firms.<ref name="TechCrunch">{{cite web |last=Rao |first=Leena |date=29 November 2011 |title=Cisco, Google Ventures, VMware Put $8.5M In Data Center Automation Startup Puppet Labs |url=https://techcrunch.com/2011/11/29/cisco-google-ventures-vmware-put-8-5m-in-data-center-automation-startup-puppet-labs/ |publisher=TechCrunch}}</ref>
== Design ==
Puppet consists of a custom declarative language to describe system configuration.
Puppet is model-driven, requiring limited programming knowledge to use.<ref>{{cite web |title=Deploying Apache Tomcat Applications With Puppet |url=http://www.tomcatexpert.com/blog/2010/04/29/deploying-tomcat-applications-puppet |access-date=23 January 2015 |work=tomcatexpert.com}}</ref>
Puppet is designed to manage the configuration of Unix-like and Microsoft Windows systems declaratively.
=== Architecture === thumb|right|Puppet manually invoked on a client Puppet follows client-server architecture. The client is known as an agent and the server is known as the master. For testing and simple configuration, it can also be used as a stand-alone application run from the command line.
Puppet Server is installed on one or more servers, and Puppet Agent is installed on all the machines to be managed. Puppet Agents communicate with the server and fetch configuration instructions. The Agent then applies the configuration on the system and sends a status report to the server.<ref>{{Cite web|url=https://docs.puppet.com/puppet/4.6/reference/architecture.html|title=Overview of Puppet's architecture — Documentation — Puppet|website=docs.puppet.com|access-date=2016-09-14|archive-url=https://web.archive.org/web/20161001232528/https://docs.puppet.com/puppet/4.6/reference/architecture.html|archive-date=2016-10-01|url-status=dead}}</ref><ref name=":0">{{Cite book|title=Pro Puppet|first1=Spencer |last1=Krum |first2=William |last2=Van Hevelingen |first3=James |last3=Turnbull |first4=Jeffrey |last4=McCune |first5=Ben |last5=Kero |date=9 December 2013|publisher=Apress|isbn=978-1430260400}}</ref>
Puppet resource syntax:
<syntaxhighlight lang="puppet"> type { 'title': attribute => value } </syntaxhighlight>
Example resource representing a Unix user:
<syntaxhighlight lang="puppet"> user { 'harry': ensure => present, uid => '1000', shell => '/bin/bash', home => '/home/harry' } </syntaxhighlight>
== Company == {{infobox company | name = Puppet, Inc | logo = Puppet transparent logo.svg | type = Private<ref name="Bloomberg Businessweek">{{cite web|url=http://investing.businessweek.com/research/stocks/private/snapshot.asp?privcapId=60472355|archive-url=https://web.archive.org/web/20121026064624/http://investing.businessweek.com/research/stocks/private/snapshot.asp?privcapId=60472355|url-status=dead|archive-date=October 26, 2012|title=Company Overview of Puppet Labs, Inc|publisher=Bloomberg Businessweek}}</ref> | industry = Computer software<ref name="Bloomberg Businessweek"/> | key_people = Luke Kanies <small>(Founder)</small>, Yvonne Wassenaar <small>(CEO)</small>, Andrew Shafer | products = Puppet, Puppet Enterprise, and Puppet Forge<ref name="Puppet">{{cite web|title=Puppet Enterprise|url=https://puppet.com/products/puppet-enterprise|publisher=Puppet}}</ref> | founded = {{start date and age|2005}}{{cn|date=August 2021}} | location = Portland, Oregon, U.S. | owner = Perforce | website = {{URL|https://puppet.com}} }}
thumb|left|Puppet Founder Luke Kanies
'''Puppet Inc.''', is a subsidiary of Perforce based in Portland, Oregon, USA.
In 2005, Puppet was founded by former CEO Luke Kanies.<ref>{{Cite web |title=Luke Kanies {{!}} Puppet |url=https://www.puppet.com/author/luke-kanies |url-status=live |archive-url=https://web.archive.org/web/20260120004836/https://www.puppet.com/author/luke-kanies |archive-date=2026-01-20 |access-date=2026-04-07 |website=Puppet.com}}</ref> On Jan. 29, 2019 Yvonne Wassenaar replaced Sanjay Mirchandani as CEO. Wassenaar previously worked at Airware, New Relic and VMware. In February 2011 Puppet released its first commercial product, Puppet Enterprise, built on its open-source base, with some extra commercial components.<ref name="enterprisenetworkingplanet">{{cite web|last=Kerner|first=Sean Michael|title=Puppet Goes After Enterprise System Management|date=2 February 2011|url=http://www.enterprisenetworkingplanet.com/news/article.php/3923256/Puppet-Goes-After-Enterprise-System-Management.htm|publisher=Enterprise Networking Planet}}</ref> Puppet purchased the infrastructure automation firm Distelli in September 2017.<ref>{{Cite web|url=https://puppet.com/blog/welcome-distelli-to-puppet-family|title=Welcome to the Puppet family, Distelli!}}</ref> Puppet rebranded Distelli's VM Dashboard (a continuous integration / continuous delivery product) as Puppet Pipelines for Applications,<ref>{{Cite web |url=https://puppet.com/docs/pipelines-for-apps/enterprise/index.html |title=Pipelines for Applications user's guide - Pipelines for Applications enterprise {{!}} Puppet |access-date=2018-07-07 |archive-url=https://web.archive.org/web/20180707125307/https://puppet.com/docs/pipelines-for-apps/enterprise/index.html |archive-date=2018-07-07 |url-status=dead }}</ref> and K8s Dashboard as Puppet Pipelines for Containers.<ref>{{Cite web |url=https://puppet.com/docs/pipelines-for-containers/enterprise/index.html |title=Pipelines for Containers user's guide - Pipelines for Containers enterprise {{!}} Puppet |access-date=2018-07-07 |archive-url=https://web.archive.org/web/20180707125200/https://puppet.com/docs/pipelines-for-containers/enterprise/index.html |archive-date=2018-07-07 |url-status=dead }}</ref> The products were made generally available in October, 2017.<ref>{{Cite web|url=https://puppet.com/blog/introducing-puppet-pipelines-and-puppet-container-registry|title = Introducing Puppet Pipelines™ and Puppet® Container Registry}}</ref> In May 2018, Puppet released Puppet Discovery, a tool to discover and manipulate resources in hybrid networks.<ref>{{Cite web|url=https://puppet.com/blog/announcing-puppet-discovery-general-availability|title=Announcing Puppet Discovery™ general availability: 8 May}}</ref> In June 2018, Puppet raised an additional $42 million for a total of $150 million in funding. The round was led by Cisco and included Kleiner Perkins, True Ventures, EDBI, and VMware.<ref>{{Cite web|url=https://techcrunch.com/2018/06/27/puppet-raises-42m-led-by-cisco-as-its-devops-automation-platform-passes-40000-businesses/|title=Puppet raises $42M led by Cisco as its DevOps automation platform passes 40,000 businesses|website=TechCrunch|date=27 June 2018 |language=en-US|access-date=2019-03-22}}</ref> Puppet's partners include VMware, Amazon Web Services, Cisco, OpenStack, Microsoft Azure, Eucalyptus, and Zenoss.<ref>{{cite web|last=Rao|first=Leena|title=Cisco, Google Ventures, VMware Put $8.5M in Data Center Automation Startup Puppet Labs|date=29 November 2011 |url=https://techcrunch.com/2011/11/29/cisco-google-ventures-vmware-put-8-5m-in-data-center-automation-startup-puppet-labs/|publisher=TechCrunch}}</ref>
In April 2022, it was announced Puppet had been acquired by the Minneapolis-headquartered software developer, Perforce.<ref>{{Cite web |title=Perforce Software acquires Puppet |url=https://techcrunch.com/2022/04/11/perforce-adds-infrastructure-automation-tooling-with-puppet-acquisition/ |access-date=2022-04-11 |website=TechCrunch |date=11 April 2022 |language=en-US}}</ref> The company subsequently laid off 15% of Puppet's workforce in Portland.<ref>{{cite news |last1=Spencer |first1=Malia |title=Perforce Software starts layoffs at Portland's Puppet |url=https://www.bizjournals.com/portland/inno/stories/news/2022/08/08/perforce-puppet-layoffs-15-percent.html?ana=RSS&s=article_search |work=The Business Journals: Portland Inno |date=August 8, 2022}}</ref>
== Controversy ==
Following acquisition by Perforce in 2022, subsequent policy changes implemented by Perforce in early 2025 significantly altered the accessibility and distribution of Puppet software which prompted frustration within the open-source community.<ref>{{Cite web |last=Anderson |first=Tim |date=2024-12-18 |title=Community plans to fork Puppet, unhappy with Perforce changes to open-source project • DEVCLASS |url=https://devclass.com/2024/12/18/community-plans-to-fork-puppet-unhappy-with-perforce-changes-to-open-source-project/ |access-date=2025-08-12 |website=DEVCLASS |language=en-US}}</ref><ref>{{Cite web |last=Read |first=Mafields 4-Min |date=2025-07-22 |title=Puppet to OpenVox Transition |url=https://linux.ncsu.edu/news/2025/07/puppet-to-openvox-transition/ |access-date=2025-08-12 |website=NC State Linux Community |language=en-US}}</ref>
Perforce announced that future Puppet binaries and packages would be published to a private repository with access granted to community contributors under an End-user license agreement (EULA) and usage beyond 25 nodes would require a commercial license. Although the core Puppet codebase remains licensed under the Apache 2.0 license, the frequency of public commits and updates was reduced. The open-source community criticized these changes, viewing them as a departure from Puppet’s original open-source principles.<ref>{{Cite web |last=Bridgwater |first=Adrian |date=2024-12-21 |title=Perforce Forks Puppet, Community Considers Muppet |url=https://devops.com/perforce-forks-puppet-community-considers-muppet/ |access-date=2025-08-12 |website=DevOps.com |language=en-US}}</ref>
Concerns were raised about diminished transparency and the prioritization of commercial interests over community collaboration. In response, members of the community initiated a fork of the project, called OpenVox, with the aim of preserving and continuing the open-source development of Puppet. The new fork also sought to avoid legal complications, as Perforce retained control over the Puppet trademark which restricted its use by third parties.<ref>{{Cite web |date=2024-12-18 |title=Puppet Community Townhall Recap |url=https://dev.to/puppet/puppet-community-townhall-recap-333j |access-date=2025-08-12 |website=DEV Community |language=en}}</ref>
== See also == {{Portal|Free and open-source software}}
* Comparison of open-source configuration management software * CFEngine
== References ==
{{refs}}
== External links == {{Commonscat}}
* {{Official|www.puppet.com/}}
{{Ruby programming language}}
Category:Companies based in Portland, Oregon Category:American companies established in 2005 Category:Privately held companies based in Oregon Category:Software companies of the United States Category:2005 establishments in Oregon Category:Software companies established in 2005 Category:2005 software Category:Orchestration software Category:Configuration management Category:Cross-platform free software Category:Free software programmed in Ruby Category:Software using the Apache license Category:Virtualization software for Linux