Puppet - кроссплатформове клієнт-серверне програмне забезпечення, котре дозволяє централізовано керувати конфігурацією операційних систем та програм, встановлених на групі серверів. Puppet написаний на мові програмування Ruby.
Puppet має клієнт-серверну архітектуру: puppet master (сервер) та puppet agent (клієнт):
Агент з певною частотою запитує дані в Puppet master. Сервер перевіряє адресу агента і, враховуючи конфіги (наявні маніфести, класи), надсилає необхідні запити на агент. Агент, в свою чергу, виконує перевірку стану ресурсів (права на файли, наявність пацюючого сервісу і т.д.) і змінює їх, якщо це необхідно, тобто слідує за правилами, котрі описано в маніфестах Puppetmaster.