Was ist Puppet?

Puppet is a configuration management tool that follows a “Mater-Slave” principle. The desired state of a system is described in a declarative language. With this, administrators define the desired final state — not how to reach it (idempotency). The definitions for the managed systems are in so-called manifests on the Puppet Master.

An agent runs on the clients, which regularly asks the master for the desired status and corrects any deviations. Configuration drifts, for example, if users have made local changes and the system is therefore no longer in the desired state, are automatically corrected the next time the agent runs. The range of possible commands extends from creating and modifying individual files to managing user accounts and software packages to more complex tasks.

Manifest and dynamic file templates are written in Ruby or a Ruby-oriented syntax and follow a strict class concept. Parameters for the manifests are either stored in a database on the Puppet Master or dynamically queried by an external node classifier such as a Data Center Inventory Management (DCIM) or a Configuration Management Database (CMDB).