The Puppet Server

The Puppet Server (server) node is the primary source of Puppet configuration data and authority. The server is a Ruby and Clojure application that runs on the Java Virtual Machine (JVM). The server uses Ruby to compile catalogs and to serve files by using several JRuby interpreters. The server uses Clojure to provide a certificate authority. Note that the configuration of some components depends on the configuration of other components. As a result, the server must house information about all the components on each managed node.

The server has the following responsibilities:

  • Compiles the catalog for each Puppet Agent-managed node

  • Transfers files from a file server

  • Sends reports to a central server

The server uses the puppet user to perform the following tasks:

  • Stores configuration manifests in the Puppet manifests directory

  • Accepts Secure Socket Layer (SSL) certificates from Puppet Agents (agents)

  • Transfers files to agents

  • Creates catalogs

The puppet user runs the Puppet Server. The puppet user is a member of the puppet group.