Background on Msgpack
Puppet agents and masters communicate over HTTPS, exchanging structured data in JSON (or, more specifically, “PSON,” which allows binary data).
Msgpack is an efficient (in space and time) serialization protocol that behaves similarly to JSON. It should provide faster and more robust serialization for agent/master communications, without requiring many changes in our code.
When msgpack is enabled, the Puppet master and agent will communicate using msgpack instead of PSON.
Enabling Msgpack serialization
Enabling msgpack is easy, but first it must be installed, as we don’t include this gem in the puppet-agent or puppetserver packages.
- Install the msgpack gem on your master and all agent nodes.
- If you are using a Puppet Enterprise test environment, be sure to use PE’s gem command instead of the system gem command.
- On *nix nodes, use
/opt/puppetlabs/puppet/bin/gem install msgpack.
- On Windows, use
"C:\Program Files\Puppet Labs\Puppet\sys\ruby\bin\gem" install msgpack
- On Puppet Server, use
puppetserver gem install msgpack, and then restart the Puppet Server service.
- On any number of agent nodes, set the
[main]section of puppet.conf).
Once this is configured, the Puppet master server will use msgpack when serving any agents that have
preferred_serialization_format set to
msgpack. Any agents without that setting will continue to receive PSON as normal.