Puppet là một công cụ quản lý hệ thống (systems management tool) mã nguồn mở để tập trung (centralizing) và tự động hóa quản lý cấu hình (configuration management). Quản lý cấu hình là việc ghi chép chi tiết và cập nhật thông tin mô tả phần cứng và phần mềm của một doanh nghiệp.
Puppet có hai lớp (layers): một ngôn ngữ cấu hình (configuration language) để mô tả host và dịch vụ nên trông như thế nào, và một lớp trừu tượng (abstraction layer) cho phép quản trị viên triển khai cấu hình trên nhiều nền tảng, bao gồm Unix, Linux, Windows và OS X. Quản trị viên có thể mã hóa (encode) cấu hình của một dịch vụ thành một chính sách (policy), mà Puppet sau đó giám sát và thực thi (enforces).
Puppet được viết bằng Ruby và sử dụng ngôn ngữ chuyên miền riêng (domain specific language – DSL) của mình để tạo và quản lý module. Phiên bản cơ bản của Puppet configuration management, gọi là Open Source Puppet, có sẵn trực tiếp từ trang web Puppet và được cấp phép dưới hệ thống Apache 2.0. Puppet Enterprise có chức năng bổ sung bao gồm điều phối (orchestration), kiểm soát truy cập dựa trên vai trò (role-based access control – RBAC) và báo cáo tuân thủ (compliance reporting).
Trang web Puppet Labs cung cấp một số module cộng đồng để mô tả và quản lý cơ sở hạ tầng dưới dạng mã (infrastructure as code). Puppet Labs gọi sự tương tác giữa Open Source Puppet và module cộng đồng là hệ sinh thái Puppet (Puppet ecosystem).
Các module hệ sinh thái Puppet phổ biến bao gồm:
Puppet Forge – kho lưu trữ (repository) cung cấp truy cập hơn 4.000 module built-in do người dùng đóng góp.
Beaker – khung kiểm thử (test harness) tập trung vào acceptance testing cho tương tác giữa nhiều máy ảo (VMs).
Facter – công cụ thu thập事实 cơ bản (basic facts) về node, bao gồm chi tiết phần cứng, cài đặt mạng, loại và phiên bản hệ điều hành (OS).
Hiera – công cụ tra cứu key/value cho dữ liệu cấu hình.
MCollective – framework xây dựng server orchestration (điều phối) hoặc hệ thống thực thi công việc song song (parallel job execution).
PuppetDB – cơ sở dữ liệu có thể tìm kiếm (searchable database) lưu trữ thông tin về mọi node.
Razor – ứng dụng provisioning (cung cấp) nâng cao cho việc khám phá và triển khai bare-metal VM và hệ thống ảo.
Trapperkeeper – framework Clojure cho hosting ứng dụng chạy dài (long-running).
Video này từ Puppet Labs cung cấp tổng quan về cách Puppet có thể dùng để tự động hóa quản lý cơ sở hạ tầng.
Xem thêm: policy-based management (quản lý dựa trên chính sách)