Puppet (software)
   HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
, Puppet is a software configuration management tool which includes its own declarative language to describe
system configuration A system configuration (SC) in systems engineering defines the computers, processes, and devices that compose the system and its boundary. More generally, the system configuration is the specific definition of the elements that define and/or prescri ...
. It is a model-driven solution that requires limited programming knowledge to use. Puppet is produced by Puppet Inc., founded by Luke Kanies in 2005. Its primary product, Puppet Enterprise, is a proprietary and
closed-source Proprietary software is software that is deemed within the free and open-source software to be non-free because its creator, publisher, or other rightsholder or rightsholder partner exercises a legal monopoly afforded by modern copyright and inte ...
version of its open-source Puppet software. They use Puppet's declarative language to manage stages of the
IT infrastructure Information technology infrastructure is defined broadly as a set of information technology (IT) components that are the foundation of an IT service; typically physical components (computer and networking hardware and facilities), but also vario ...
lifecycle, including the
provisioning In telecommunication, provisioning involves the process of preparing and equipping a network to allow it to provide new services to its users. In National Security/Emergency Preparedness telecommunications services, ''"provisioning"'' equates to ...
, patching, configuration, and
management Management (or managing) is the administration of an organization, whether it is a business, a nonprofit organization, or a Government agency, government body. It is the art and science of managing resources of the business. Management includ ...
of
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
and application components in data centers and cloud infrastructures. Puppet uses an open-core model; its free-software version was released under version 2 of the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
(GPL) until version 2.7.0, and later releases use the Apache License, while Puppet Enterprise uses a proprietary license. Puppet and Puppet Enterprise operate on multiple
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
systems (including
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
, Solaris, BSD,
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
, AIX, HP-UX) and has Microsoft Windows support. Puppet itself is written in
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
, while Facter is written in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, and Puppet Server and Puppet DB are written in
Clojure Clojure (, like ''closure'') is a dynamic and functional dialect of the Lisp programming language on the Java platform. Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system. The current development process is comm ...
.


Design

Puppet is designed to manage the configuration of
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
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 Apt. is an abbreviation for apartment. Apt may also refer to: Places * Apt Cathedral, a former cathedral, and national monument of France, in the town of Apt in Provence * Apt, Vaucluse, a commune of the Vaucluse département of France * A ...
). Puppet is model-driven, requiring limited programming knowledge to use. It comes in two versions, Puppet Enterprise and Open Source Puppet. In addition to providing functionalities of Open Source Puppet, Puppet Enterprise also provides GUI,
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
and command line tools for node management.


Architecture

Puppet usually 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. Devices can run Puppet Agent as a
daemon Daimon or Daemon (Ancient Greek: , "god", "godlike", "power", "fate") originally referred to a lesser deity or guiding spirit such as the daimons of ancient Greek religion and Greek mythology, mythology and of later Hellenistic religion and Hell ...
, that can be triggered periodically as a cron job or can be run manually whenever needed. The Puppet programming language is a declarative language that describes the state of a computer system in terms of "resources", which represent underlying network and operating system constructs. The user assembles resources into manifests that describe the desired state of the system. These manifests are stored on the server and compiled into configuration instructions for agents on request. Puppet resource syntax: type Example resource representing a Unix user: user Puppet allows users to configure systems in a platform-agnostic way by representing operating system concepts as structured data. Rather than specifying the exact commands to perform a system action, the user creates a resource, which Puppet then translates into system-specific instructions which are sent to the machine being configured. For example, if a user wants to install a package on three different nodes, each of which runs a different operating system, they can declare one resource, and Puppet will determine which commands need to be run based on the data obtained from Facter, a program that collects data about the system it is running on, including its operating system,
IP address An Internet Protocol address (IP address) is a numerical label such as that is connected to a computer network that uses the Internet Protocol for communication.. Updated by . An IP address serves two main functions: network interface ident ...
, and some hardware information. Providers on the node use Facter facts and other system details to translate resource types in the catalog into machine instructions that will actually configure the node. A normal Puppet run has the following stages: # An agent sends facts from Facter to the master. # Puppet builds a graph of the list of resources and their inter-dependencies, representing the order in which they need to be configured, for every client. The master sends the appropriate catalog to each agent node. # The actual state of the system is then configured according to the desired state described in manifest file. If the system is already in the desired state, Puppet will not make any changes, making transactions
idempotent Idempotence (, ) is the property of certain operations in mathematics and computer science whereby they can be applied multiple times without changing the result beyond the initial application. The concept of idempotence arises in a number of pl ...
. # Finally, the agent sends a report to the master, detailing what changes were made and any errors that occurred.


Vendor

Puppet's vendor Puppet, Inc, is a privately held
information technology Information technology (IT) is the use of computers to create, process, store, retrieve, and exchange all kinds of Data (computing), data . and information. IT forms part of information and communications technology (ICT). An information te ...
(IT) automation software company based in
Portland, Oregon Portland (, ) is a port city in the Pacific Northwest and the list of cities in Oregon, largest city in the U.S. state of Oregon. Situated at the confluence of the Willamette River, Willamette and Columbia River, Columbia rivers, Portland is ...
, USA. In 2005, Puppet was founded by former CEO Luke Kanies. On Jan. 29, 2019 Yvonne Wassenaar replaced Sanjay Mirchandani as CEO. Wassenaar previously worked at
Airware Airware (incorporated as Unmanned Innovation, Inc.) was an American venture-funded startup that provided commercial unmanned aerial vehicles for enterprises. The company ceased operations on September 14, 2018. Airware was founded in 2011 in New ...
,
New Relic New Relic is a San Francisco, California San Francisco (; Spanish for " Saint Francis"), officially the City and County of San Francisco, is the commercial, financial, and cultural center of Northern California. The city proper is the ...
and
VMware VMware, Inc. is an American cloud computing and virtualization technology company with headquarters in Palo Alto, California. VMware was the first commercially successful company to virtualize the x86 architecture. VMware's desktop software ru ...
. In February 2011 Puppet released its first commercial product, Puppet Enterprise, built on its open-source base, with some extra some commercial components. In September 2011, the company released Puppet Enterprise 2.0, which introduced integration with MCollective, acquired by Puppet in 2010, as well as
provisioning In telecommunication, provisioning involves the process of preparing and equipping a network to allow it to provide new services to its users. In National Security/Emergency Preparedness telecommunications services, ''"provisioning"'' equates to ...
for
virtual machines In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hard ...
on
Amazon EC2 Amazon Elastic Compute Cloud (EC2) is a part of Amazon.com's cloud-computing platform, Amazon Web Services (AWS), that allows users to rent virtual computers on which to run their own computer applications. EC2 encourages scalable deployment of ...
and
VMware VMware, Inc. is an American cloud computing and virtualization technology company with headquarters in Palo Alto, California. VMware was the first commercially successful company to virtualize the x86 architecture. VMware's desktop software ru ...
. In June 2013, Puppet released Puppet Enterprise 3.0, which features a rewritten orchestration engine. Puppet purchased the infrastructure automation firm Distelli in September 2017. Puppet rebranded Distelli's VM Dashboard (a continuous integration /
continuous delivery Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, following a pipeline through a "production-like environment", withou ...
product) as Puppet Pipelines for Applications, and K8S Dashboard as Puppet Pipelines for Containers. The products were made generally available in October, 2017. In May 2018, Puppet released Puppet Discovery, a tool to discover and manipulate resources in hybrid networks. It is Puppet's third stand-alone enterprise product. In June of 2018 Puppet raised $42 million for a total of $150 million in funding. The round was led by
Cisco Cisco Systems, Inc., commonly known as Cisco, is an American-based multinational digital communications technology conglomerate corporation headquartered in San Jose, California. Cisco develops, manufactures, and sells networking hardware, ...
and included Kleiner Perkins, True Ventures, EDBI, and
VMware VMware, Inc. is an American cloud computing and virtualization technology company with headquarters in Palo Alto, California. VMware was the first commercially successful company to virtualize the x86 architecture. VMware's desktop software ru ...
. Puppet partners and has technology integrations with
VMware VMware, Inc. is an American cloud computing and virtualization technology company with headquarters in Palo Alto, California. VMware was the first commercially successful company to virtualize the x86 architecture. VMware's desktop software ru ...
,
Amazon Web Services Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide d ...
,
Cisco Cisco Systems, Inc., commonly known as Cisco, is an American-based multinational digital communications technology conglomerate corporation headquartered in San Jose, California. Cisco develops, manufactures, and sells networking hardware, ...
,
OpenStack OpenStack is a free, open standard cloud computing platform. It is mostly deployed as infrastructure-as-a-service (IaaS) in both public and private clouds where virtual servers and other resources are made available to users. The software pl ...
, Microsoft Azure,
Eucalyptus ''Eucalyptus'' () is a genus of over seven hundred species of flowering trees, shrubs or mallees in the myrtle family, Myrtaceae. Along with several other genera in the tribe Eucalypteae, including '' Corymbia'', they are commonly known as e ...
,
Rightscale RightScale was a company that sold software as a service for cloud computing management for multiple providers. The company was based in Santa Barbara, California. It was acquired by Flexera Software in 2018. History Thorsten von Eicken, a ...
, and Zenoss. In April 2022, it was announced Puppet had been acquired by the
Minneapolis Minneapolis () is the largest city in Minnesota, United States, and the county seat of Hennepin County. The city is abundant in water, with thirteen lakes, wetlands, the Mississippi River, creeks and waterfalls. Minneapolis has its origins ...
-headquartered software developer, Perforce. The company subsequently laid off 15% of Puppet's workforce in Portland.


See also

* Comparison of open-source configuration management software *
CFEngine CFEngine is an open-source configuration management system, written by Mark Burgess. Its primary function is to provide automated configuration and maintenance of large-scale computer systems, including the unified management of servers, desk ...


References


External links

* *
Official Puppet Labs YouTube Channel

Pulling Strings with Puppet: Configuration Management Made Easy
()
Pro Puppet
()
Learning Puppet 4
() {{Ruby programming language Companies based in Portland, Oregon American companies established in 2005 Privately held companies based in Oregon Information technology companies of the United States 2005 establishments in Oregon Software companies established in 2005 2005 software Orchestration software Configuration management Cross-platform free software Free software programmed in Ruby Software using the Apache license Virtualization software for Linux