Puppet
従来はシステム管理者が個別に操作していた、ソフトウェアパッケージの導入やオペレーティングシステム(OS)の設定変更、ユーザーアカウントの管理などを「マニフェスト」(manifest)と呼ばれる設定ファイルに基づいて自動的に処理してくれる。
マニフェストは管理者によって記述される設定ファイルで、自動化したい操作をシステムの個々の要素があるべき姿として記述していく。Puppet自体はプログラミング言語のRubyで開発されており、マニフェストはRubyを元に独自に規定された独自のドメイン固有言語(DSL)で記述する。
マニフェストが対象とすることができるシステム要素を「リソースタイプ」と呼び、標準ではファイル(file)、ユーザー(user)、グループ(group)、ソフトウェアパッケージ(package)、OS上で稼働するサービス(service)などが用意されている。独自にカスタムリソースタイプを定義して追加することもできる。
管理者が操作しているコンピュータ自体を設定対象とするスタンドアローン版の他に、マニフェストを他のコンピュータに配布して自動設定するクライアントサーバ版も用意されている。管理者はPuppet Serverにマニフェストを配置して多数のクライアントに一斉配信することができ、クライアント側のコンピュータに組み込まれたPuppet Agentがこれを受信して設定を適用する。
Puppetは同名の企業(Puppet Inc.)によって開発されており、2005年に最初のバージョンが公開された。Linuxをはじめとする各種のUNIX系OSやmacOS、Windowsに対応する。オープンソース版は小規模システムが対象でApache Licenseに基づいて(以前はGPLだった)配布されているが、同社では大規模システムで運用可能なEnterprise(エンタープライズ)版を販売している。